RecycleBin/fr

From SME Server
Jump to navigation Jump to search


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.

Activer la corbeille pour les utilisateurs

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


  Attention :
après avoir effectué les changements avec les commandes indiquées, vous devez vous déconnecter et vous reconnecter à votre station de travail de façon à ce que les nouveaux droits d'accès soient enregistrés par votre (re)connexion. La corbeille fonctionnera alors comme prévu.


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 l'attribut du dernier fichier modifié pour supprimer sélectivement les fichiers après qu'ils ont été dans la corbeille pendant 30 jours.

Configurez le script pour qu'il s'exécute à partir de cron tous les jours ou toutes les semaines.

  Astuce :
Si après l'exécution du script, vous recevez des courriels de notification vides et que vous avez coché les indicateurs de date des fichiers dans la corbeille et que vous savez qu'ils doivent être supprimés, remplacez le paramètre '-ctime' par ' -mtime '. bugzilla: 7596

Vous pouvez vérifier la sortie en lançant ceci à l'invite de commande pour voir si des fichiers sont maintenant marqués pour suppression (vous pouvez ajuster le nombre de jours que vous souhaitez)

find /home/e-smith/files/users/*/home/Recycle\ Bin/* -type f -mtime +30 -print


#!/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 "+------------------------------------------------------------------------------+"

Changer le nom de la corbeille

Vous pouvez changer le nom de la corbeille en créant une copie du fragment de modèle dans l’arborescence des modèles personnalisés et en y réalisant vos modifications.

  1. Créer la structure du dossier nécessaire : mkdir -p /etc/e-smith/templates-custom/etc/smb.conf/ibays
  2. Copier le fragment de modèle dans l'arborescence des modèles personnalisés : cp /etc/e-smith/templates/etc/smb.conf/ibays/10recyclebin /etc/e-smith/templates-custom/etc/smb.conf/ibays
  3. Utiliser n'importe quel éditeur pour réaliser vos modifications dans le fichier copié : nano /etc/e-smith/templates-custom/etc/smb.conf/ibays/10recyclebin Modifier cette ligne : $ibay_vfs->{recycle}->{repository} = "Recycle Bin"; en ce que vous souhaitez comme nom : $ibay_vfs->{recycle}->{repository} = "Ajouter votre nom ici";
      Astuce :
    vous pouvez masquer la corbeille en ajouter un point comme premier caractère du nom de la corbeille.

  4. Maintenant, laisser le serveur réaliser les actions nécessaires aux changements sur toutes les baies d'informations (remplacer <ibayname> par le nom de la baie d'information dans la commande suivante) : signal-event ibay-modify <ibayname>