MODOP – Sauvegarde de données machines – rsnapshot

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *