• # rsync avec --link-dest

    Posté par . En réponse au message [Résolu] Backup (oui, c'est une vielle problématique). Évalué à 8. Dernière modification le 09 mars 2014 à 12:42.

    Depuis 2 ans environ, j'utilise un script bash pour rsync, trouvé sur internet et modifié un peu par mes soins:

    #!/bin/sh
    date=`date "+%Y%m%d-T%H%M%S"`
    # Attention au /
    SOURCE_DIR=/home/denis/
    TARGET_HOST=192.168.0.4
    TARGET_USER=rsync
    TARGET_DIR=/volume1/persosave/rsync/denis
    time rsync --archive --one-file-system --hard-links \
     --human-readable --inplace \
     --partial --progress \
     --delete-excluded \
     --exclude-from=$SOURCE_DIR/script/rsync-exclude \
     --link-dest=$TARGET_DIR/current \
     $SOURCE_DIR $TARGET_USER@$TARGET_HOST:$TARGET_DIR/incomplete_back-$date 
     if [ $? -eq 0 ]; then
    ssh $TARGET_USER@$TARGET_HOST "mv $TARGET_DIR/incomplete_back-$date $TARGET_DIR/back-$date \
     && rm -f $TARGET_DIR/current \
     && ln -s back-$date $TARGET_DIR/current";
    fi

    Il remplit toutes tes demandes, je le trouve fiable. Le script ci-dessus sert pour une connexion à distance sur un autre ordi à travers ssh, il faut donc juste un peu le simplifier pour du local.
    J'ai le même script un peu plus étoffé, pour gérér plusieurs sources avec sauvegarde sur un NAS syno et envoi d'un rapport par mail.

    PS : un lien pour expliquer l'option --link-dest
    PS2 : le script est basique, je pense qu'il faudra "l'amorcer" au début, c'est à dire avoir les répertoires de créés, avoir une première sauvegarde dans le répertoire de destination, ainsi qu'un lien symbolique "current" sur la première sauvegarde.