Machine rsnapshot
- CPU : 2
- RAM : 2Go
- Disque : 8Go (Disque système)
- Disque : 40Go (Disque Backup)
- IP adresse : 192.168.1.40
- HostName : rsnapshot
- Type : Machine Serveur de sauvegarde incrémentales
Machine rsnapshot-client01
- CPU : 2
- RAM : 2Go
- Disque : 8Go (Disque système)
- IP adresse : 192.168.1.41
- HostName : rsnapshot-client01
- Type : Machine Client01
Machine rsnapshot-client02
- CPU : 2
- RAM : 2Go
- Disque : 8Go (Disque système)
- IP adresse : 192.168.1.42
- HostName : rsnapshot-client02
- Type : Machine Client02
Mise à jour de la machine
[root@rsnapshot ~]# yum -y update
Désactiver SELinux
[root@rsnapshot ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config [root@rsnapshot ~]# reboot
Supprimer l’IPv6
[root@rsnapshot ~]# vi /etc/sysctl.conf net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.all.autoconf = 0 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.default.autoconf = 0
[root@rsnapshot ~]# sysctl -p
Installation rsnapshot
[root@rsnapshot ~]# yum install -y epel-release [root@rsnapshot ~]# yum install -y rsnapshot
Ajout 2ème Disques Backup (/dev/sdb)
[root@rsnapshot ~]# fdisk -l
[root@rsnapshot ~]# pvcreate /dev/sdb [root@rsnapshot ~]# vgcreate backupvolume /dev/sdb [root@rsnapshot ~]# lvcreate -n rsnapshot -l 100%FREE backupvolume
[root@rsnapshot ~]# mkfs.xfs /dev/mapper/backupvolume-rsnapshot
[root@rsnapshot ~]# mkdir -p /backup [root@rsnapshot ~]# echo "/dev/mapper/backupvolume-rsnapshot /backup xfs defaults 0 0" >> /etc/fstab [root@rsnapshot ~]# mount -a
Configure hosts (si pas DNS)
[root@rsnapshot /]# echo "192.168.1.40 rsnapshot" >> /etc/hosts [root@rsnapshot /]# echo "192.168.1.41 rsnapshot-client01" >> /etc/hosts [root@rsnapshot /]# echo "192.168.1.42 rsnapshot-client02" >> /etc/hosts
[root@rsnapshot /]# ssh-keygen
[root@rsnapshot ~]$ ssh-copy-id rsnapshot-client01 [root@rsnapshot ~]$ ssh-copy-id rsnapshot-client02
Configurer rsnapshot
[root@rsnapshot /]# cp /etc/rsnapshot.conf{,-old}
[root@rsnapshot /]# vi /etc/rsnapshot.conf ########################### # SNAPSHOT ROOT DIRECTORY # ########################### snapshot_root /backup/.snapshots/ ################################# # EXTERNAL PROGRAM DEPENDENCIES # ################################# cmd_cp /usr/bin/cp cmd_rm /usr/bin/rm cmd_rsync /usr/bin/rsync cmd_ssh /usr/bin/ssh cmd_logger /usr/bin/logger cmd_du /usr/bin/du cmd_rsnapshot_diff /usr/bin/rsnapshot-diff ######################################### # BACKUP LEVELS / INTERVALS # # Must be unique and in ascending order # # e.g. alpha, beta, gamma, etc. # ######################################### #retain alpha 6 #retain beta 7 #retain gamma 4 #retain delta 3 interval hourly 6 interval daily 7 interval weekly 4 interval monthly 3 ############################################ # GLOBAL OPTIONS # # All are optional, with sensible defaults # ############################################ verbose 2 loglevel 3 logfile /var/log/rsnapshot ############################### ### BACKUP POINTS / SCRIPTS ### ############################### #### Client01 backup root@rsnapshot-client01:/etc rsnapshot-client01 backup root@rsnapshot-client01:/home rsnapshot-client01 backup root@rsnapshot-client01:/var/www rsnapshot-client01 #### Client02 backup root@rsnapshot-client02:/etc rsnapshot-client02 backup root@rsnapshot-client02:/home rsnapshot-client02 backup root@rsnapshot-client02:/var/www rsnapshot-client02
[root@rsnapshot /]# rsnapshot configtest Syntax OK
[root@rsnapshot /]# chown -R root.root /backup [root@rsnapshot /]# touch /var/log/rsnapshot && chown root.root /var/log/rsnapshot
Créer des fichiers dans /www de chaque client
[root@rsnapshot-client01 ~]# mkdir /var/www/ && touch /var/www/{index.html,toto.txt} [root@rsnapshot-client02 ~]# mkdir /var/www/ && touch /var/www/{index.html,toto1.txt}
Installer rsync sur les clients
[root@rsnapshot-client01 ~]# yum install rsync [root@rsnapshot-client02 ~]# yum install rsync
Lancement du Backup complet des machines clientes 01 et 02
[root@rsnapshot /]# /usr/bin/rsnapshot hourly
Check des sauvegardes
[root@rsnapshot /]# cat /var/log/rsnapshot
[root@rsnapshot /]# du -a /backup/ |grep rsnapshot-client01 |grep -i 'var/www'
[root@rsnapshot /]# du -a /backup/ |grep rsnapshot-client02 |grep -i 'var/www'
Ajouter les jobs pour déclencher le service de sauvegarde
[root@rsnapshot /]# crontab -e # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user command to be executed # # Lancement d'un snapshot horaire tous les 4H 0 */4 * * * /usr/bin/rsnapshot hourly # Lancement d'un snapshot journalier à 23h50 50 23 * * * /usr/bin/rsnapshot daily # Lancement d'un snapshot hebdomadaire à 23h00 00 23 * * 6 /usr/bin/rsnapshot weekly # Lancement d'un snapshot mensuel à 23H10 10 23 1 * * /usr/bin/rsnapshot monthly
Restauration d’un fichier via les snapshots
Supprimons le fichier toto.txt de la machine rsnapshot-clone01 essayons des restaurer.
[root@rsnapshot-client01 ~]# rm -f /var/www/toto.txt && ls -al /var/www/
Sur le serveur de backup
[root@rsnapshot /]# du -a /backup/ |grep rsnapshot-client01 |grep -i 'var/www' |grep toto
Hourly.0 est la sauvegarde la plus récente.
[root@rsnapshot /]# scp /backup/.snapshots/hourly.0/rsnapshot-client01/var/www/toto.txt root@rsnapshot-client01:/var/www/toto.txt
[root@rsnapshot-client01 ~]# ls -al /var/www/
Exemple sur 3 jours de fonctionnement.
Views: 24