rsync -avz --delete --rsh=ssh --bwlimit=80 --exclude=/tmp/** --exclude=/proc/** --exclude=/dev/** --exclude=/sys/** root@my_server:/ /media/disque2/dedi_backup

Ici :

  • -a : On utilise rsync pour faire une archive du serveur vers le répertoire local.
  • -v : J'aime bien voir défiler la liste des fichiers sauvegardés.
  • -z : On va compresser histoire d'utiliser moins de bande passante
  • --delete : Si un fichier à été supprimé du serveur, détruit aussi sa copie locale.
  • --rsh=ssh : on va utiliser SSH donc les transferts seront cryptés.
  • --bwlimit=80 : on limite la bande passante à 80ko/s soit 640kbps pour ne pas gêner les autres applications. 640kbps c'est peu il est peut être utile de mettre une limite plus haute ou même ne pas préciser de limite pour y aller à pleine vitesse. Remarquez aussi que la limite est approximative et qu'il peut la dépasser dans la pratique.
  • les "exclude" : on ne backup pas le contenu de certains dossiers inutiles voire gênants pour le backup.
  • root : je veux sauvegarder absolument tout alors il faut que je soit en root pour ne pas avoir de problèmes de droits d'accès.
  • my_server : le nom du serveur.
  • / : on va sauvegarder la racine du serveur, donc tout ce qui s'y trouve.
  • /media/disque2/dedi_backup le dossier local dans lequel je veux sauvegarder.

Cette commande doit être lancée en root pour pouvoir aussi sauvegarder les droits des fichiers. Le dossier "/media/disque2/dedi_backup" ne doit être accessible qu'a root (chmod 700, user:root) car il peut y avoir un conflit entre les UID, GID utilisés par le serveur et ceux de la machine qui backup. Pour plus de commodité on fera un tar dans un dossier personnel, par exemple :

tar --create --file /home/moi/dedi_backup.tar /media/disque2/dedi_backup
chown moi:moi /home/moi/dedi_backup.tar

Remarques :

  • Seul petit soucis avec le tarball c'est que dans l'archive tout se retrouve dans "media/disque2/dedi_backup" et pas à la racine de l'archive.
  • La première fois que l'on backup comme ça le dossier "/media/disque2/dedi_backup" est vide donc rsync fait un "full" et c'est long surtout si on limite la bande passante.
  • Bien sûr on ne touche pas pas le "/media/disque2/dedi_backup" car c'est grâce à lui que l'on peut faire des backups incrémentiels.
  • Pour les bases de donnés il est préférable de les faire d'une autre façon car l'intégrité de la base n'est pas assuré par rsync.

Je recommande dans un autre billet l'utilisation de l'option --delete-after de rsync