J'ai lu quelques post et je me suis rendu compte que le script que j'ai écrit la semaine dernière était très utile à beaucoup.
Le script a été mis en place sur Deux Syno distant, derrière deux FREEBOX en dégroupé (IP publique fixe).
Je n'avais qu'un accès distant aux deux syno, via SSH, Web et FTP.
Voici un peu la démarche.
1) je sépare le disque de travail du disque de sauvegarde. J'appelerai HOME celui sur lequel je crée une sauvegarde, et BUREAU celui qui doit être sauvegardé.
2) chaque samedi à 1h00 je lance la sauvegarde (CRONTAB)
3) je crée un fichier log sur lequel j'écris les infos
4) je lance rsync entre les dossiers
5) j'envoie un mail au final quand ça a fonctionné (ou pas fonctionné) 1 _ ACCES SSH
il vous faut un accès SSH sur les deux Syno. La démarche est simple : fixer via le routeur l'adresse du Syno, la sortir de la plage DHCP, router les ports 5000, 21 et 22 vers le Syno. Des deux côtés 2_ MISE EN PLACE DES CLEFS PUBLIQUES/PRIVEE
Cette partie est nécessaire pour que la sauvegarde soit entièrement automatique. En effet, dans un script, lorsqu'on se connecte à un SSH, il demande TOUJOURS le mot de passe.
Du coup. VIA SSH
Sur le disque BUREAU,
je lance la commande :
ssh-keygen -t dsa
je récupère ainsi, dans le dossier /root/.ssh une cle privee et une clef publique. ( id_dsa et id_dsa.pub)
J'envoie alors la clef publique à HOME (id_dsa.pub)
j'inclue ce fichier dans authorized_keys
du coup, tentez : connectez vous sur BUREAU en SSH. Lancez la commande ssh root@IP_DU_HOME .... il devrait accepter sans demander de mot de passe.
Tant que cette partie ne marche pas, je vous conseille de chercher encore un peu. Il existe pas mal de tutos. 3_NAIL (pour ceux qui veulent envoyer un mail à la fin)
installez nail en utilisant ipkg install nail
si ipkg n'est pas installé, il existe un excellent tuto de fredo
dans /OPT/etc/nail.rc ajoutez : smtp= votresmtp. 4_mise en place du script
voici, il n'y a plus qu'à écrire le script.
j'ai mis les commentaire après les #
Voici le mien : #!/opt/bin/bash
touch log_$(date '+%d-%m-%Y') #création d'un fichier LOG qui permettra d'envoyer le résultat
echo "Debut $(date '+%d-%m-%Y')de la sauvegarde" >> log_$(date '+%d-%m-%Y') # message au début du fichier
echo "du dossier PUBLIC vers le disque dur HOME" >> log_$(date '+%d-%m-%Y') # idem
echo "$(date '+%d-%m-%Y') vers $(date '+%H : %M') > demarrage ..." >> log_$(date '+%d-%m-%Y') #idem
rsync --delete -az /volume1/public/testcopy -e ssh root@IP_DU_DISQUE_HOME:/volume1/public/ # la commande ultime ! la ligne suivante vérifie le résultat et ajoute à mon fichier log le résultat
if [ $? -eq 0 ] ;
then
echo "$(date '+%d-%m-%Y') vers $(date '+%H : %M') > sauvegarde reussie ! du disque BUREAU" >> log_$(date '+%d-%m-%Y')
else
echo "$(date '+%d-%m-%Y')> sauvegarde problematique du disque BUREAU ..." >> log_$(date '+%d-%m-%Y')
fi
echo " ----- " >> log_$(date '+%d-%m-%Y')
nail -s "Sauvegarde terminee" sylvain.germe@gmail.com < log_$(date '+%d-%m-%Y') #j'envoie le fichier log
rm -f /volume1/.rsync/log_$(date '+%d-%m-%Y') # je n'ai plus besoin du fichier log
Je place ce script dans un dossier que je définis . Pour moi je l'ai mis dans /volume1/@scripts. 5_mise en place du crontab
modifier le fichier /etc/crontab
il existe également plein de tutos là dessus.
NB : pensez à relancer le crontab après modifs !!!!
Je n'ai pas beaucoup détaillé, mais si besoin, dites le moi