logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Ceci est une ancienne révision du document !


Sauvegarde incrémentielle avec rsync

Tags :

(testé - gksam 20-06-2013)

Le retour sur le forum est ici : Lien vers le forum concernant ce tuto

 N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !

ajout prévu : logrotate du fichier de log /var/log/rsync-backup.log & crontab de la sauvegarde

* Objet : Sauvegarder les dossiers et fichiers d'une machine

* Niveau requis : DÉBUTANT(E)

* Commentaires : le but est de sauvegarder sa machine sans y penser.

* Débutant, à savoir : Utiliser GNU/Linux en ligne de commande, tout commence là !. :-)

Introduction

/mnt/sauvegarde/
├── machine1
│   ├── increment
│   │   ├── 130612
│   │   ├── 130613
│   │   ├── 130614
│   │   ├── 130615
│   │   └── 130616
│   └── up-to-date
│       ├── etc
│       ├── home
│       ├── root
│       └── var
├── machine2
│   ├── increment
│   │   ├── 130613
│   │   ├── 130614
│   │   ├── 130615
│   │   ├── 130616
│   │   └── 130617
│   └── up-to-date
│       ├── etc
│       ├── home
│       ├── root
│       └── var

L'architecture du dossier de sauvegarde est comme ci-dessus.

Les dossiers up-to-date contiennent la dernière sauvegarde.

Les dossiers increment contiennent eux les fichiers et dossiers qui ont été supprimé ou déplacé. À savoir que lors d'un déplacement le dossier sera copié deux fois. Une fois dans le dossier increment et sera retranféré dans le dossier up-to-date. donc, attention à l'espace disque.

Installation

Vérifier l'état du paquet rsync

Pour que la sauvegarde fonctionne, il faut que le paquet rsync soit installé dans le système. Donc, dans une console, exécuter la commande suivante.

$ dpkg --list 'rsync' && echo "rsync est installé" || echo "rsync n'est pas installé"

Installer le paquet rsync

Si le paquet rsync n'est pas installé, dans une console en root, exécuter la commande suivante.

# apt-get install rsync -y

Créer le script de sauvegarde

Créer le fichier rsync-backup.sh dans le dossier /etc/init.d

Dans une console en root, exécuter la commande suivante.

# touch /etc/init.d/rsync-backup.sh

Modifier les droits du fichier rsync-backup.sh pour qu'il devienne exécutable

Dans une console root, exécuter la commande suivante.

# chmod 755 /etc/init.d/rsync-backup.sh

Copier le contenu du fichier rsync-backup.sh

Pour éditer le fichier, dans une console en root, exécuter la commande suivante.

# nano /etc/init.d/rsync-backup.sh

Copier le contenu suivant. note :

#! /bin/sh
### BEGIN INIT INFO
# Provides:          rsync-backup
# Required-Start:
# Required-Stop:     $all
# Should-Stop:
# Default-Start:
# Default-Stop:      0
# Short-Description: Sauvegarde du système.
### END INIT INFO

do_stop () {

	# initialiser les variables
	local nom_hote=`hostname`
	local point_montage='/mnt/sauvegarde'
	local local nb_jours=10

	logger "rsync-backup: début de la sauvegarde de la machine"
	echo "rsync-backup: sauvegarde de la machine..."

	# vérifier que le point de montage est monté
	/bin/mountpoint -q $point_montage

	# si le point de montage n'est pas monté alors
	if [ $? -ne 0 ] ; then

		# monter le point de montage
		/bin/mount $point_montage

		# vérifier que le point de montage est monté
		/bin/mountpoint -q $point_montage

			# si le point de montage n'est toujours pas monté alors logger l'erreur et sortir
			if [ $? -ne 0 ] ; then

				logger "rsync-backup: point de montage $point_montage n'est pas monté"
				logger "rsync-backup: sauvegarde du système impossible"
				echo "[err] rsync-backup: sauvegarde impossible. problème de point de montage"
				return 1
			fi
	fi

	# exécuter la commande de sauvegarde
	logger "rsync-backup: point de montage ok. execution de la commande de sauvegarde."
	/usr/bin/rsync --human-readable \
		--recursive --links --perms --times --delete-after \
		--log-file=/var/log/rsync-backup.log \
		--backup --backup-dir=../increment/`date +%y%m%d`/ \
		--exclude-from=/etc/gk-backup-include --exclude='**' \
		/ $point_montage/$nom_hote/up-to-date/ && logger "rsync-backup: sauvegarde effectuée."

	# supprimer les anciennes sauvegarde (10 jours)
	logger "rsync-backup: suppression des anciennes sauvegarde"

	# suppimer les dossiers dans le dossier increment dont la date est supperieur 
	find $point_montage/$nom_hote/increment/* -maxdepth 0 -type d -ctime +$nb_jours -exec rm -rf {} \;

	logger "rsync-backup: fin de la sauvegarde de la machine"
	echo "[ok] rsync-backup: sauvegarde terminée."

	return 0
}

case "$1" in
  stop)
	do_stop
	exit $?
	;;
  *)
	echo "Usage: $0 stop" >&2
	exit 3
	;;
esac

Modifier les variables pour qu'elle corresponde à votre système

cette variable permet de sélectionner le point de montage où sera copier la sauvegarde

local point_montage='/mnt/sauvegarde'

cette variable permet de choisir combien de jours il faut garder les incréments

local local nb_jours=10

Sauvegarder le fichier et quitter l'éditeur de texte

ctrl+o suivi de ctrl+x

Créer le fichier de sélection des dossiers et fichiers à sauvegarder

Ce fichier permet de sélectionner ce que l'on veut sauvegarder ou ne pas sauvegarder.

Créer le fichier rsync-backup-include dans le dossier /etc/

Dans une console en root, exécuter la commande suivante.

# touch /etc/rsync-backup-include

Modifier les droits du fichier rsync-backup-include

Dans une console root, exécuter la commande suivante.

# chmod 644 /etc/rsync-backup-include

Copier le contenu du fichier rsync-backup-include

Pour éditer le fichier, dans une console en root, exécuter la commande suivante.

# nano /etc/rsync-backup-include

Copier le contenu suivant. note :

- /bin/
- /boot/
- /dev/
+ /etc/
+ /etc/**
+ /home/
#- /home/*/Bureau/
#- /home/*/Documents/
#- /home/*/Images/
#- /home/*/Modèles/
- /home/*/Musique/
- /home/*/Public/
- /home/*/Téléchargements/
- /home/*/Vidéos/
- /home/*/.adobe/
- /home/*/.aptitude
- /home/*/.bash_history
- /home/*/.cache/
- /home/*/.cvs/
- /home/*/.dbus/
- /home/*/.fontconfig/
- /home/*/.gnome2_private/
- /home/*/.gnome2/
- /home/*/.gstreamer-0.10/
- /home/*/.gvfs/
- /home/*/.ICEauthority
- /home/*/.java/
- /home/*/.lesshst
- /home/*/.local/
- /home/*/.macromedia/
- /home/*/.mozilla/
- /home/*/.pulse-cookie
- /home/*/.recently-used
- /home/*/.swt/
- /home/*/.thumbnails/
- /home/*/.Xauthority
- /home/*/.xsession-errors
- /home/*/.xsession-errors.old
+ /home/*
+ /home/*/**
- /initrd.img
- /lib/
- lost+found/
- /media/
- /opt/
- /proc/
+ /root/
+ /root/**
- /run/
- /sbin/
- /selinux/
- /srv/
- /sys/
- /tmp/
- /usr/
+ /var/
+ /var/mail/
+ /var/mail/**
+ /var/spool/
+ /var/spool/cron/
+ /var/spool/cron/**
- /vmlinuz
- *.cvs
- .git/
- *~

pour plus d'informations sur cette partie, dans une console, exécuter la commande suivante.

$ man rsync

sections : FILTER RULES et INCLUDE/EXCLUDE PATTERN RULES

Cette partie est la plus compliquée. En gros, mettre un # (commenter une ligne permet de sauvegarder un dossier et ses sous dossiers.

Sauvegarder le fichier et quitter l'éditeur de texte

ctrl+o suivi de ctrl+x

Installer le lien vers le script d'initialisation de type Système V

Dans une console root, exécuter la commande suivante.

note : ne pas s'inquiéter du message : update-rc.d: warning: stop runlevel arguments (none) do not match rsync-backup Default-Stop values (0)

# update-rc.d rsync-backup stop 0

Utilisation

voilà aux prochains arrêts la machine sera sauvegardée

Vérifier que la sauvegarde fonctionne

Dans une console root, exécuter la commande suivante.

# grep 'rsync-backup:' /var/log/syslog

Afficher ce qui est sauvegardé

Dans une console, exécuter la commande suivante.

cat /var/log/rsync-backup.log

Désinstallation

Dans une console root, exécuter les commandes suivantes.

# update-rc.d rsync-backup remove
# rm [[/etc/init.d/rsync-backup.sh]]
# rm [[/etc/rsync-backup-include]]
# rm /var/log/rsync-backup.log
# apt-get purge rsync -y
doc/systeme/rsync/backup.1372801670.txt.gz · Dernière modification: 02/07/2013 23:47 par bendia

Pied de page des forums

Propulsé par FluxBB