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

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
doc:systeme:rsync:backup [02/07/2013 23:47]
bendia [Sauvegarde incrémentielle avec rsync]
doc:systeme:rsync:backup [07/07/2013 13:30]
gksam [Créer le script de sauvegarde]
Ligne 51: Ligne 51:
 Les dossiers up-to-date contiennent la dernière sauvegarde. 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+Les dossiers increment contiennent eux les fichiers et dossiers qui ont été supprimédéplacé ​ou modifié. À 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 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. à l'​espace disque.
Ligne 91: Ligne 91:
  
 Copier le contenu suivant. Copier le contenu suivant.
-note : +
 <​file>​ <​file>​
 #! /bin/sh #! /bin/sh
Ligne 103: Ligne 103:
 # Short-Description:​ Sauvegarde du système. # Short-Description:​ Sauvegarde du système.
 ### END INIT INFO ### END INIT INFO
 +
 +envoyer_mail () {
 +
 + echo "​$1"​ | mail -s "​[error] [`hostname`] [$NAME]"​ $USER
 +
 + return 0
 +}
  
 do_stop () { do_stop () {
Ligne 108: Ligne 115:
  # initialiser les variables  # initialiser les variables
  local nom_hote=`hostname`  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é  # vérifier que le point de montage est monté
- /​bin/​mountpoint -q $point_montage+ # si le point de montage est un dossier et qu'il est monté alors continuer sinon retourner 1 
 + [ -d $point_montage ] && ( /​bin/​mountpoint -q $point_montage ​|| return 1 )
  
- # si le point de montage ​n'est pas monté alors +tester ​si l'on peut écrire dans le dossier du point de montage 
- if $? -ne 0 ] ; then+ # retourner 2 en cas d'échec 
 +-w $point_montage ​&& return 2;
  
- monter le point de montage + exécuter la commande rsync de sauvegarde 
- /bin/mount $point_montage+ /usr/bin/rsync --human-readable \ 
 + --recursive --links --perms --times --delete-after \ 
 + --log-file=/​var/​log/​rsync-backup.log \ 
 + --backup --backup-dir=$point_montage/​$nom_hote/​increment/​`date +%y%m%d`/ \ 
 + --exclude-from=$rsync_backup_include --exclude='​**'​ \ 
 + / $point_montage/​$nom_hote/​up-to-date/​ || return 3
  
- vérifier que le point de montage est monté + supprimer les anciennes sauvegarde 
- /bin/mountpoint ​-$point_montage+ find $point_montage/$nom_hote/increment/​* ​-maxdepth 0 -type d -ctime +$nb_jours -exec rm -rf {} \; || return 4
  
- # si le point de montage n'est toujours pas monté alors logger l'​erreur et sortir + return ​0 
- if [ $? -ne ] ; then+}
  
- logger ​"​rsync-backup: point de montage ​$point_montage n'est pas monté"​ +PATH=/​sbin:/​usr/​sbin:/​bin:/​usr/​bin 
- logger "rsync-backup: sauvegarde du système impossible"​ +DESC="Description of the service"​ 
- echo "​[err] ​rsync-backup: sauvegarde impossible. problème de point de montage"​ +NAME=rsync-backup 
- return 1 +SCRIPTNAME=/​etc/​init.d/​$NAME 
- fi +rsync_backup_conf='/​etc/​rsync-backup.conf' 
- fi+rsync_backup_include='/​etc/​rsync-backup-include'​ 
 +point_montage=''​ 
 +nb_jours=30
  
- exécuter ​la commande de sauvegarde +lire la librairie init-functions 
- logger "rsync-backup: point de montage ok. execution de la commande de sauvegarde."​ +. /lib/lsb/init-functions
- /​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) +lire le fichier ​rsync-backup.conf s'il est lisible 
- logger "rsync-backup: suppression des anciennes sauvegarde"​+# exit 1 en cas d'​échec 
 +if [ -r $rsync_backup_conf ] ; then
  
- # suppimer les dossiers dans le dossier increment dont la date est supperieur ​ + . $rsync_backup_conf 
- find $point_montage/​$nom_hote/​increment/​* -maxdepth 0 -type d -ctime +$nb_jours -exec rm -rf {} \;+else
  
- logger ​"rsync-backupfin de la sauvegarde de la machine" + log_failure_msg $NAME": " "le fichier $rsync_backup_conf n'est pas lisible"
- echo "[ok] rsync-backup:​ sauvegarde terminée."+
  
- return 0 + envoyer_mail "le fichier $rsync_backup_conf n'est pas lisible"​ 
-}+ 
 + exit 1 
 +fi 
 + 
 +# tester si le fichier rsync-backup-include est lisible 
 +# exit 1 en cas d'​échec 
 +if [ ! -r $rsync_backup_include ] ; then 
 + 
 + log_failure_msg $NAME":​ " "le fichier $rsync_backup_include n'est pas lisible"​ 
 + 
 + envoyer_mail "le fichier $rsync_backup_include n'est pas lisible"​ 
 + 
 + exit 1 
 +fi
  
 case "​$1"​ in case "​$1"​ in
-  ​stop) + 
- do_stop +  stop) 
- exit $? +   log_daemon_msg $NAME "​sauvegarde de la machine..."​ 
- ;; + 
-  *) + # exécuter la méthode ​do_stop 
- echo "​Usage:​ $0 stop" >&​2 + do_stop 
- exit 3 + 
- ;;+ # en fonction du résultat afficher le message de fin 
 + case "$?" in 
 + 0) log_end_msg 0 
 + exit 0 
 + ;; 
 + 
 + 1) log_end_msg 1 
 + envoyer_mail "​impossible de monter le point de montage $point_montage"​ 
 + exit 1 
 + ;; 
 + 
 + 2) log_end_msg 1 
 + envoyer_mail "ne peut pas écrire dans dossier du point de montage $point_montage"​ 
 + exit 1 
 + ;; 
 + 
 + 3) log_end_msg 1 
 + envoyer_mail "​échec de la commande rsync"​ 
 + exit 1 
 + ;; 
 + 
 + 4) log_end_msg 0 
 + log_warning_msg "​problème de suppression des increments"​ 
 + exit 0; 
 + ;; 
 + esac 
 + ;; 
 + 
 + *) 
 + echo "​Usage:​ $0 stop" >&​2 
 + exit 3 
 + ;;
 esac esac
  
 </​file>​ </​file>​
  
-==== Modifier les variables pour qu'elle corresponde à votre système ​====+==== Sauvegarder le fichier et quitter l'éditeur de texte ====
  
-cette variable permet ​de sélectionner le point de montage où sera copier la sauvegarde+ctrl+o suivi de ctrl+x
  
-local point_montage='/​mnt/​sauvegarde'​+===== Créer le script de configuration =====
  
-cette variable permet de choisir combien de jours il faut garder les incréments+==== Créer le fichier rsync-backup.conf dans le dossier /etc/ ====
  
-local local nb_jours=10+Dans une console en root, exécuter la commande suivante. 
 + 
 +<​code>​ 
 +# touch /​etc/​rsync-backup.conf 
 +</​code>​ 
 + 
 +==== Modifier les droits du fichier rsync-backup.conf pour qu'il devienne exécutable ==== 
 + 
 +Dans une console root, exécuter la commande suivante. 
 + 
 +<​code>​ 
 +# chmod 644 /​etc/​rsync-backup.conf 
 +</​code>​ 
 + 
 +==== Copier le contenu du fichier rsync-backup.conf ==== 
 + 
 +Pour éditer le fichier, dans une console en root, exécuter la commande suivante. 
 + 
 +<​code>​ 
 +# nano /​etc/​rsync-backup.conf 
 +</​code>​ 
 + 
 +Copier le contenu suivant. 
 + 
 +<​file>​ 
 +# le point de montage doit être monté 
 +point_montage='/​mnt/​sauvegarde'​ 
 +nb_jours=10 
 + 
 +</​file>​
  
 ==== Sauvegarder le fichier et quitter l'​éditeur de texte ==== ==== Sauvegarder le fichier et quitter l'​éditeur de texte ====
 +
 ctrl+o suivi de ctrl+x ctrl+o suivi de ctrl+x
  
doc/systeme/rsync/backup.txt · Dernière modification: 23/08/2015 17:55 par milou

Pied de page des forums

Propulsé par FluxBB