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:38]
gksam [Créer le fichier de sélection des dossiers et fichiers à sauvegarder]
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
  
Ligne 188: Ligne 267:
  
 ==== Créer le fichier rsync-backup-include dans le dossier /etc/ ==== ==== Créer le fichier rsync-backup-include dans le dossier /etc/ ====
 +
 Dans une console en root, exécuter la commande suivante. Dans une console en root, exécuter la commande suivante.
 +
 <​code>​ <​code>​
 # touch /​etc/​rsync-backup-include # touch /​etc/​rsync-backup-include
Ligne 194: Ligne 275:
  
 ==== Modifier les droits du fichier rsync-backup-include ==== ==== Modifier les droits du fichier rsync-backup-include ====
 +
 Dans une console root, exécuter la commande suivante. Dans une console root, exécuter la commande suivante.
 +
 <​code>​ <​code>​
 # chmod 644 /​etc/​rsync-backup-include # chmod 644 /​etc/​rsync-backup-include
Ligne 200: Ligne 283:
  
 ==== Copier le contenu du fichier 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. Pour éditer le fichier, dans une console en root, exécuter la commande suivante.
 +
 <​code>​ <​code>​
 # nano /​etc/​rsync-backup-include # nano /​etc/​rsync-backup-include
Ligne 206: Ligne 291:
  
 Copier le contenu suivant. Copier le contenu suivant.
-note : +
 <​file>​ <​file>​
-- /bin+# La commande rsync utitilisée inclue / (root) et exclue tout. Cela ne sauvegarde rien. Le fichier rsync-backup-include permet d'​inclure ce que l'on veut sauvegarder. 
-- /boot+# (note : pour plus d'​information voir la page de manuel de rync dans les sections : FILTER RULES, INCLUDE/EXCLUDE PATTERN RULES, MERGE-FILE FILTER RULES) 
-- /dev/+# à la visite d'un dossier, penser à exclure ce que l'on ne veut pas sauvegarder avant de mettre la règle contenant les * 
 +# + [pattern] inclu un motif 
 +# - [pattern] exclu un motif 
 +# '​*'​ remplace tout et s'​arrête au premier slash. 
 +# '​**'​ remplace tout, incluant les slashs. 
 +# + /dossier/ visite un dossier mais ne sauvegarde rien 
 +# + /dossier/* sauvegarde tous les fichiers et dossiers mais de manière non récursive (les dossiers seront vides) 
 +# + /dossier/** sauvegarde tous le contenu du dossier récursivement 
 + 
 +# exclure les fichiers 
 +- /initrd.img 
 +/vmlinuz 
 +#.git/ 
 +#- .cvs/ 
 + 
 +# sauvegarder le contenue du dossier ​/etc
 + /etc/ + /etc/
 + /etc/** + /etc/**
 +
 +# sauvegarde tous les dossiers utilisateurs
 + /home/ + /home/
-#- /home/*/Bureau+/home/*/ 
-#- /​home/​*/​Documents/​ +exclure les dossiers et fichiers que l'on ne veut pas sauvegarder dans les dossiers utilisateurs
-#- /​home/​*/​Images/​ +
-#- /​home/​*/​Modèles/​+
 - /​home/​*/​Musique/​ - /​home/​*/​Musique/​
 - /​home/​*/​Public/​ - /​home/​*/​Public/​
Ligne 239: Ligne 339:
 - /​home/​*/​.macromedia/​ - /​home/​*/​.macromedia/​
 - /​home/​*/​.mozilla/​ - /​home/​*/​.mozilla/​
 +- /​home/​*/​.pulse/​
 - /​home/​*/​.pulse-cookie - /​home/​*/​.pulse-cookie
 - /​home/​*/​.recently-used - /​home/​*/​.recently-used
Ligne 246: Ligne 347:
 - /​home/​*/​.xsession-errors - /​home/​*/​.xsession-errors
 - /​home/​*/​.xsession-errors.old - /​home/​*/​.xsession-errors.old
-+ /home/*+# sauvegarder tout ce qui n'a pas était exclue dans les dossiers utilisateurs
 + /home/*/** + /home/*/**
-- /initrd.img + 
-- /lib/ +# sauvegarder le dossier de l'​utilisateur root
-- lost+found/​ +
-- /media/ +
-- /opt/ +
-- /proc/+
 + /root/ + /root/
 + /root/** + /root/**
-- /run/ + 
-- /sbin/ +# sauvegarder le dossier cron
-- /selinux/ +
-- /srv/ +
-- /sys/ +
-- /tmp/ +
-- /usr/+
 + /var/ + /var/
-+ /var/mail/ 
-+ /​var/​mail/​** 
 + /var/spool/ + /var/spool/
 + /​var/​spool/​cron/​ + /​var/​spool/​cron/​
 + /​var/​spool/​cron/​** + /​var/​spool/​cron/​**
-/vmlinuz + 
-- *.cvs +# sauvegarder le dossier mail 
-- .git+#+ /var
-- *~+#+ /var/spool/ 
 ++ /​var/​spool/​mail/ 
 ++ /​var/​spool/​mail/​** 
 + 
 +# exclure tout (comme ça on est sûr) 
 +- **
  
 </​file>​ </​file>​
Ligne 283: Ligne 378:
  
 sections : FILTER RULES et INCLUDE/​EXCLUDE PATTERN RULES 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 ==== ==== Sauvegarder le fichier et quitter l'​éditeur de texte ====
 +
 ctrl+o suivi de ctrl+x ctrl+o suivi de ctrl+x
  
-==== Installer le lien vers le script d'​initialisation de type Système V ====+===== Ajouter rotation du fichier de log ===== 
 + 
 +==== Créer le fichier rsync-backup dans le dossier /​etc/​logrotate.d ==== 
 + 
 +Dans une console en root, exécuter la commande suivante. 
 + 
 +<​code>​ 
 +# touch /​etc/​logrotate.d/​rsync-backup 
 +</​code>​ 
 + 
 +==== Modifier les droits du fichier rsync-backup ==== 
 + 
 +Dans une console root, exécuter la commande suivante. 
 + 
 +<​code>​ 
 +# chmod 644 /​etc/​logrotate.d/​rsync-backup 
 +</​code>​ 
 + 
 +==== Copier le contenu du fichier rsync-backup ==== 
 + 
 +Pour éditer le fichier, dans une console en root, exécuter la commande suivante. 
 + 
 +<​code>​ 
 +# nano /​etc/​logrotate.d/​rsync-backup 
 +</​code>​ 
 + 
 +Copier le contenu suivant. 
 + 
 +<​file>​ 
 +/​var/​log/​rsync-backup.log { 
 + 
 + compress 
 + copytruncate 
 + delaycompress 
 + missingok 
 + notifempty 
 + weekly 
 +
 + 
 +</​file>​ 
 + 
 +===== Installer le lien vers le script d'​initialisation de type Système V ====
 Dans une console root, exécuter la commande suivante. Dans une console root, exécuter la commande suivante.
  
doc/systeme/rsync/backup.txt · Dernière modification: 23/08/2015 17:55 par milou

Pied de page des forums

Propulsé par FluxBB