Sauvegarde complète d'un serveur
Un serveur de données ou un serveur Web nécessite plusieurs types de sauvegardes, selon le problème que la sauvegarde est destinée à résoudre.
Sauvegarde à partir d'une date
time find . type f newermt 2012-01-01-01 ! nouveau 2017-01-01-01 -print0 | rsync -HAXaxi --delete --from0 --files-from=- . /run/media/jdd/0ae3a54f-b032-4a21-8180-14d5efc5577f
Sauvegardes locales
Sauvegarder, ou plutôt archiver avec de gros disques usb est une bonne idée.
Mieux vaut monter le disque source en lecture seule, dans mon cas mieux vaut faire en tant qu'utilisateur car je suis le seul utilisateur de cet ordinateur, donc tous les fichiers sont la propriété de moi. Voir Monter un disque en tant qu'utilisateur, en lecture seule.
Après cela (et seulement après cela), branchez ou allumez le disque cible et montez-le en lecture/écriture.
Alors
rsync -av --delete /run/media/jdd/intenso5to2/ /run/media/jdd/intenso4to/
avec les bons points de montage. De préférence usb3 ! Et attendez.
Il m'arrive de changer certains noms de dossiers. Si je m'en souviens à temps, il vaut mieux faire la même chose manuellement sur la cible, sinon l'ancien dossier sera supprimé et remplacé, mais il peut être plus long.
Scripts Rsync et ssh
La plupart des sauvegardes sont effectuées avec des scripts rsync, de préférence sur un serveur externe (autre que celui qui est sauvegardé). Il se peut donc que vous deviez configurer une clé d'authentification ssh sans phrase de passe pour connecter les deux ordinateurs (voir).
et avec cron :
MAILTO = jdd@dodin.org 30 01 * * * * * /root/bin/backup-to-kim7.sh
dans le script, deux lignes :
rsync -azv --delete --rsync-path="rsync --fake-super" -e "ssh -i /root/.ssh/id_dsa" /home/ kim5@kim7.dodin.org:/home/kim5/backup/home/ rsync -azv --delete --rsync-path="rsync --fake-super" -e "ssh -i /root/.ssh/id_dsa" -x / kim5@kim7.dodin.org:/home/kim5/backup/system/
Home
Par home, j'entends home et toutes les données éventuelles, j'essaie surtout de configurer les dossiers de données dans /home par commodité (dans le serveur). Il n'y a probablement dans /home aucun fichier spécial nécessitant un traitement spécial, mais les fichiers peuvent être volumineux ou en grand nombre. Ces fichiers doivent pour la plupart survivre à une mise à niveau du serveur.
rsync -avz --delete --rsync-path="rsync --fake-super" -e "ssh -i /root/.ssh/id_dsa" /home user@dodin.org:~/data/
fake-super est là pour garder les permissions des super-utilisateurs s'il y en a.
l'enregistrer dans un script bash dans bin
En cron :
30 01 * * * * * /root/bin/backup-home
Système
Dans system, la clé est "-x' qui signifie "pas de système de fichiers externe", par exemple ne vont pas aux parties montées (donc pas de /home) ni aux systèmes de fichiers supplémentaires comme /dev ou /proc.
rsync -avz --delete --rsync-path="rsync --fake-super" -e "ssh -i /root/.ssh/id_dsa" -x / nemo-bk@dodin.org:/data/nemo-bk/system
Restaurer
Si vous utilisez fake-super, cette option doit également être utilisée au moment de la restauration. Si vous utilisez --delete, soyez très prudent quand au répertoire où vous faites la restauration, ici le répertoire wordpress. Le "." à la fin de la commande signifie que vous devez vous devez vous trouver dans ce répertoire pour la lancer !
rsync -avz --delete --rsync-path="rsync --fake-super" -e "ssh -i /root/.ssh/id_dsa" kim5@kim7.dodin.org:/home/kim5/backup/home/data/srv/www/htdocs/wordpress/ . .
Variantes
rsync -av --max-size=400m --delete --exclude --exclude=/media --exclude=/proc --exclude=/dev --exclude=/sys --exclude=/tmp --exclude=/var/tmp --delete-excluded --exclude='*/Cache/*' --exclude=/windows/C/pagefile.sys / /media/opensus11/
ajouter "-n" (dry run) au premier essai
sauvegarde du serveur :
rsync -av --exclude=/media --exclude=/proc --exclude=/dev --exclude=/sys --exclude=/tmp --exclude=/var/tmp --exclude=/data --exclude=/ extra --exclude=/home / .
-e ssh root@dodin:/ pour passer par ssh
attention, ca exclu /data
pour les données :
rsync -av --exclude k2_root/ --exclude backup/ -e ssh root@dodin.org:/data/ .
Utilisation de l'option "-x" (un système de fichiers) ?
se placer dans le répertoire de réception et
rsync -av -x -x --supprimer la destination d'origine
Sauvegarde du serveur du culte :
m-r (dans m-r, script cron) :
rsync -avz -e "ssh -i /root/.ssh/id_dsa" / cu1lt2@dodin.org:/data/culte-serveurs-bk/m-r/ --exclude=/proc --exclude=/dev --exclude=/sys --exclude=/tmp --exclude=/var/tmp --delete-excluded --exclude='*/Cache/*' --max-size=400m --delete