Synology Sauvegarde d'un NAS mxxx sur un NAS2 bxxx via rsync et ssh

gdonlyon

Nouveau membre
30 Mai 2016
26
0
1
Bonjour,

Voici un petit tuto pour gérer à la demande une sauvegarde via un rsync par ssh root. Il s'agit d'un backup unidirectionel. Ceci garantit que si on efface un fichier du NAS mxxx, le fichier est conservé sur le NAS bxxx.

Le principe consiste à lancer à minuit tous les jours la sauvegarde des 4 dossiers partagés du NAS mxxx.synology.me

/volume1/homes
/volume1/music
/volume1/photo
/volume1/video

sur le NAS bxxx.synology.me sous

/volume1/Netbackup/mxxx/homes
/volume1/Netbackup/mxxx/music
/volume1/Netbackup/mxxx/photo
/volume1/Netbackup/mxxx/video

Pour cela on va utiliser la commande rsync a travers un ssh root.

1) Autoriser le ssh pour root au moyen de clef publique/privé (le ssh root est désactivé depuis le DSM6)

1.a Se connecter par ssh (putty ou mobaxterm) avec un compte administrateur puis
Code:
sudo -i
(retaper le mot de passe)

1.b Installer les key pour faire du ssh en tant que root

Code:
ssh-keygen -t rsa
scp ~/.ssh/id_rsa.pub root@bxxx.synology.me:/var/tmp
cat /var/tmp/id_rsa.pub >>~/.ssh/authorized_keys
chmod 700 ~/.ssh/authorized_keys

'dans /etc/ssh/sshd_config mettre PermitRootLogin Yes(à la place de no)

===============================================================================================

2) Automatiser le lancement su script rsync_mxxx . Ajouter la ligne suivante dans le fichier /etc/crontab

0 0 * * * root /volume1/homes/admin/rsync_mxxx


3) Relancer le crond pour prendre en compte le nouveau fichier crontab

Code:
/usr/syno/sbin/synoservicectl --restart crond

4) Mettre en place le mail en cas de souci de sauvegarde
# modification pour notification par mail
===============================================================================================

1) mettre le langage des notifications dans le synology source a French

2) dans fichier : /usr/syno/synoman/webman/texts/fre/mails ajouter:

[save_rsync]
Category: System,Important
Title: Probleme sauvegarde mxxx
Subject: Probleme sauvegarde sur bxxx.synology.me


3) dans fichier : /usr/syno/synoman/webman/texts/fre/notification_category
ajouter ,{"group":"System","name":"save_rsync","title":"Problème avec sauvegarde mxxx"},

===============================================================================================

5) Créer le fichier rsync_mxxx (il commence a !#bin/ash) dans le dossier /volume1/homes/admin/. On utilise un lock_file au cas ou la sauvegarde serait trop longue...et en cas de soucis autre on est prévenu par notification et par mail.



Code:
#!/bin/sh

### music
if test -s /logs/lock_music
  then echo ""
  else
        touch /logs/lock_music
        date >> /logs/save_music
        rsync -azv  /volume1/music/ -e "ssh -p 22 -i /root/.ssh/id_dsa" root@bxxx.synology.me:/volume1/NetBackup/mxxx/music/ >>/logs/save_music 2>/logs/ERROR_music.log
        date >> /logs/save_music
        rm /logs/lock_music
        if test -s /logs/ERROR_music.log
         then synonotify save_rsync
         else
          rm /logs/ERROR_music.log
        fi
fi

### PHOTO
if test -s /logs/lock_photo
    then echo ""
    else
        touch /logs/lock_photo
        date >>/logs/save_photo
        rsync -azv  /volume1/photo/ -e "ssh -p 22 -i /root/.ssh/id_dsa" root@bxxx.synology.me:/volume1/NetBackup/mxxx/photo/ >>/logs/save_photo 2>/logs/ERROR_photo.log
        date >> /logs/save_photo
        rm /logs/lock_photo
        if test -s /logs/ERROR_photo.log
          then synonotify save_rsync
          else
           rm /logs/ERROR_photo.log
        fi
fi
### HOMES
if test -s /logs/lock_homes
    then echo""
    else
        touch /logs/lock_homes
        date >>/logs/save_homes
        rsync -azv  /volume1/homes/ -e "ssh -p 22 -i /root/.ssh/id_dsa" root@bxxx.synology.me:/volume1/NetBackup/mxxx/homes/ >>/logs/save_homes 2>/logs/ERROR_homes.log
        date >> /logs/save_homes
        rm /logs/lock_homes
        if test -s /logs/ERROR_homes.log
          then  synonotify save_rsync
          else rm /logs/ERROR_homes.log
        fi
fi

### VIDEO
if test -s /logs/lock_video
     then echo ""
     else
        touch /logs/lock_video
        date >> /logs/save_video
        rsync -azv  /volume1/video/ -e "ssh -p 22 -i /root/.ssh/id_dsa" root@bxxx.synology.me:/volume1/NetBackup/mxxx/video/ >>/logs/save_video 2>/logs/ERROR_video.log
        date >> /logs/save_video
        rm /logs/lock_video
        if test -s /logs/ERROR_video.log
            then synonotify save_rsync
            else rm /logs/ERROR_video.log
        fi
fi