Doc /

Complete backup of a server

Version française: Sauvegarde complète d'un serveur

A data or web server needs several kinds of backups, depending what problem the backup is aimed to fix.

Rsync scripts

Most backups are done with rsync scripts, preferably to an external server (other than the one being backed). So you may need to setup a ssh authentification key without pass phrase to connect the two computers (see).


By home, I mean home and all the eventual data, I mostly try to setup data folders in /home for convenience (in the server). There are probably in /home no special file needing special treatment, but the files may be large or in large number. These files mostly have to survive a server upgrade.

rsync -avz --delete --rsync-path="rsync --fake-super" -e "ssh -i /root/.ssh/id_dsa" /home

fake-super is there to keep superuser permissions if any.

save it in a script bash in bin

In cron:

 30 01 * * * /root/bin/backup-home


In system, the key is "-x' that mean "no external file system", for example do not go to mounted parts (so no /home) nor extra file systems like /dev or /proc.

rsync -avz --delete --rsync-path="rsync --fake-super"   -e "ssh -i /root/.ssh/id_dsa" -x /


rsync -av --max-size=400m --delete --exclude=/media --exclude=/proc --exclude=/dev --exclude=/sys --exclude=/tmp --exclude=/var/tmp --delete-excluded --exclude='*/Cache/*' --exclude=/windows/C/pagefile.sys / /media/opensuse11/

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 .

Usage de l'option "-x" (one file system)?

se placer dans le répertoire de réception et

rsync -av -x --delete origine destination

Sauvegarde du serveur du culte:

m-r (dans m-r, script cron):

rsync -avz -e "ssh -i /root/.ssh/id_dsa" / --exclude=/proc --exclude=/dev --exclude=/sys --exclude=/tmp --exclude=/var/tmp --delete-excluded --exclude='*/Cache/*' --max-size=400m --delete