RecycleBin/fr
Problème
Les fichiers supprimés dans les baies d'informations et dans les répertoires personnels des utilisateurs sur le serveur sont perdus à jamais.
Scénario
C'était un problème connu depuis longtemps par les administrateurs réseau. Des fichiers stockés sur un autre ordinateur / serveur, accidentellement frappés la touche SUPPR. Pouf ! Disparus. Les fichiers ne sont pas dans la corbeille locale de l'ordinateur local. Ceci est particulièrement frustrant pour les administrateurs qui mappent des parties de profil sur le serveur. Le bureau de l'utilisateur, les documents, etc. ne se retrouvent jamais dans la corbeille locale, comme les utilisateurs s'y attendent.
Activer la «corbeille» pour les baies d'information
db accounts setprop ibayname RecycleBin enabled db accounts setprop ibayname KeepVersions enabled signal-event ibay-modify ibayname
La première propriété active la fonctionnalité Corbeille. La seconde propriété «KeepVersions» garantit que lorsqu'un fichier est supprimé avec le même nom que celui qui a été précédemment supprimé, le dernier fichier supprimé sera renommé «Copy #x» du nom du fichier.
Enable Recycle Bin for users
db configuration setprop smb RecycleBin enabled db configuration setprop smb KeepVersions enabled
Développer le modèle...
/sbin/e-smith/expand-template /etc/samba/smb.conf
Penser à redémarrer le service...
/etc/rc7.d/S91smb restart
Le dossier «Corbeille» sera créé automatiquement la première fois qu'un fichier sera supprimé, donc vous ne verrez pas le dossier jusqu'à ce que vous effaciez quelque chose.
Un administrateur peut alors récupérer les fichiers sur le serveur.
Emplacements de la corbeille
Pour les baies d'information, la corbeille est située :
/home/e-smith/files/ibays/ibayname/files/Recycle Bin
Pour les utilisateurs, la corbeille est située :
/home/e-smith/files/users/username/home/Recycle Bin
Vidage automatique du contenu de la corbeille
Le simple script ci-dessous peut être utilisé pour vider régulièrement les différentes corbeilles.
Noter que ce script est configuré pour utiliser le dernier attribut de fichier modifié pour supprimer sélectivement les fichiers après qu'ils ont été dans la corbeille pendant 30 jours. is setup to use the last changed file attribute to selectively deletes files after they have been in the Recycle Bin for 30 days.
Setup the script to run either daily or weekly from cron.
#!/bin/bash # ensure finds includes hidden files in the Recycle Bins shopt -s dotglob echo "+------------------------------------------------------------------------------+" echo "| Samba recycle-bin cleaner |" echo "+------------------------------------------------------------------------------+" URF=$(find /home/e-smith/files/users/*/home/Recycle\ Bin/* -type f -ctime +30) if [ "$URF" != "" ] then printf "| %-76s |\n" "The following user recycle bin files were deleted:" IFS=$'\n' for file in $URF do printf "| - %-74s |\n" "$file" rm -f "$file" done else printf "| %-76s |\n" "There were no old user recycle bin files to delete." fi echo "+------------------------------------------------------------------------------+" IRF=$(find /home/e-smith/files/ibays/*/files/Recycle\ Bin/* -type f -ctime +30) if [ "$IRF" != "" ] then printf "| %-76s |\n" "The following ibays recycle bin files were deleted:" IFS=$'\n' for file in $IRF do printf "| - %-74s |\n" "$file" rm -f "$file" done else printf "| %-76s |\n" "There were no old ibays recycle bin files to delete." fi echo "+------------------------------------------------------------------------------+" URD=$(find /home/e-smith/files/users/*/home/Recycle\ Bin/* -type d -empty) if [ "$URD" != "" ] then printf "| %-76s |\n" "The following users recycle bin directories were deleted:" IFS=$'\n' for folder in $URD do printf "| - %-74s |\n" "$folder" rm -rf "$folder" done else printf "| %-76s |\n" "There were no old user recycle bin directories to delete." fi echo "+------------------------------------------------------------------------------+" IRD=$(find /home/e-smith/files/ibays/*/files/Recycle\ Bin/* -type d -empty) if [ "$IRD" != "" ] then printf "| %-76s |\n" "The following ibays recycle bin directories were deleted:" IFS=$'\n' for folder in $IRD do printf "| - %-74s |\n" "$folder" rm -rf "$folder" done else printf "| %-76s |\n" "There were no old ibays recycle bin directories to delete." fi echo "+------------------------------------------------------------------------------+"
Changing the Recycle Bin name
You can change the name of the recycle bin by making a copy of the template fragment into the templates-custom tree and making your modifications there.
- Create the proper folder structure: mkdir -p /etc/e-smith/templates-custom/etc/smb.conf/ibays
- Copy the template fragment to the template-custom tree cp /etc/e-smith/templates/etc/smb.conf/ibays/10recyclebin /etc/e-smith/templates-custom/etc/smb.conf/ibays
- Use any editor to make your changes in the copied file
nano /etc/e-smith/templates-custom/etc/smb.conf/ibays/10recyclebin
Modifying this line:
$vfs->{recycle}->{repository} = "Recycle Bin";
to whatever you like for a name:
$vfs->{recycle}->{repository} = "Add your name here";
- Now let the server take the necessary actions to have the changes reflected for all ibays (replace <ibayname> with the ibayname): signal-event ibay-modify <ibayname>