Doc /

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.

On this page... (hide)

  1.   1.  Sauvegarde √† partir d'une date
  2.   2.  Sauvegardes locales
  3.   3.  Scripts Rsync et ssh
  4.   4.  Home
  5.   5.  Syst√®me
  6.   6.  Restaurer
  7.   7.  Variantes

1.  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

2.  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.

3.  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/

4.  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

5.  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

6.  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/ . .

7.  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