Version complète: sur le forum Webmaster Hub : Backup par rsync
Webmaster Hub > Informatique & Internet > PC-Gyver > Linux, freebsd
V0r_X
Salut à tous,

Je suis en train de mettre en place une solution de sauvegarde en utilisant rsync. Je me heurte au souci suivant :
L'option --delete demande à rsync de supprimer du volume de sauvegarde les fichiers ne se trouvant plus sur le volume d'origine. Mais exite-t-il une option lui demandant de supprimer les fichiers qui ont été supprimés depuis plus de x jours (genre --delete-ceux-ki-sont-effacés-depuis-plus-d-une-semaine tongue.gif ) ?

Merci d'avance
stopher
Salut ,

Pourquoi n'utilises tu pas "dump" qui je trouve est bien plus complet que rsync , gére parfaitement les backup incrementiel sur autant de niveau que tu le souhaite , peut tres bien etre sauvegardé sur une machine distante via ssh , gere aussi la compression et posside une fonction de restauration interactive tres agreable ...

Voilà , ca ne repond pas vraiment à ta question , mais te donne une autre solution :-)

Good luck

Stopher.
V0r_X
Salut,

Merci pour ta réponse.
Je ne connais pas dump, mais je vais me pencher dessus, car il semble répondre à ma question.

Cordialement
V0r_X
Après m'être renseigné au sujet de dump, je note qu'il ne permet de sauvegarder que les systèmes de fichier EXT2/3. Or, la sauvegarde que je veux mettre en place est une sauvegarde de volumes réseau, montés sur une machine Linux.

je m'explique en prenant un exemple :

Un mac partage via samba un volume nommé "donnees".
Je monte ce volume sur une machine qui tourne sous Debian.
Sur cette même machine, je monte un disque externe.

À partir de ce moment, j'aimerais sauvegarder tout ce qui se trouve sur le volume "donnees" vers le dd externe. Enfin, tout fichier effacé depuis plus de 5 jours sur le mac doit l'être également sur le disque.

Ceci n'est qu'un exemple plus simple que la réalité (plusieurs volumes réseau sont en réalité montés sur le machine Debian, et tous doivent être sauvegardés de la même manière).

Cordialement
V0r_X
Bon je me réponds à moi-même :

CITATION
piskecèkomsa, t'as qu'à te faire un script bash ki te fera ça !


Je me lance immédiatement là-dessus, et je vous fais part du résultat wink.gif
V0r_X
ayé !

J'ai terminé ce p'tit script. Je vous le livre, au cas où il pourrait vous servir :
CODE
   #!/bin/bash
    
    # Répertoire à sauvegarder
    # Attention, pas de "/" final
    SRC_DIR=/mnt/smb/donnees
    
    # Répertoire de destination
    DEST_DIR=/mnt/usb/dd
    
    # Nombre de jours au bout desquels supprimer
    # les fichiers de $DEST_DIR s'ils ont été effacés
    # de $SRC_DIR
    DELETE_DELAY=5
    
    # Chemin de rsync
    RSYNC_BIN=/usr/bin/rsync
    
    # Options de rsync
    RSYNC_OPTS=-a
    
    # Première étape : sauvegarde, sans suppression
    $RSYNC_BIN $RSYNC_OPTS ${SRC_DIR}/ $DEST_DIR
    
    # Maintenant : on supprime tous les fichiers de $DEST_DIR
    # s'ils ne sont plus présents sur $SRC_DIR et que leur dernière
    # modification date de plus de $DELETE_DELAY jours
    
    for i in `find $DEST_DIR -type f`; do
            dest_dir_size=${#DEST_DIR}
            src_file=${SRC_DIR}${i:$dest_dir_size}
            # Si le fichier n'existe plus dans
            # le répertoire source
            if [ ! -e $src_file ]; then
                    let "mod_delay=`date +'%s'`-`stat -c '%Z' $i`"
                    let "max_delay=$DELETE_DELAY*24*3600"
                    if [ $mod_delay -gt $max_delay ]; then
                            echo "Suppression de $i"
                            rm -f $i
                    fi
            fi
    done
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.