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 →
Ceci est une ancienne révision du document !
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 ça machine sans y penser.
* Débutant, à savoir : Utiliser GNU/Linux en ligne de commande, tout commence là !.
/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.
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é"
Si le paquet rsync n'est pas installé, dans une console en root, exécuter la commande suivante.
# apt-get install rsync -y
Dans une console en root, exécuter la commande suivante.
# touch /etc/init.d/rsync-backup.sh
Dans une console root, exécuter la commande suivante.
# chmod 755 /etc/init.d/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
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
ctrl+o suivi de ctrl+x
Ce fichier permet de sélectionner ce que l'on veut sauvegarder ou ne pas sauvegarder.
Dans une console en root, exécuter la commande suivante.
# touch /etc/rsync-backup-include
Dans une console root, exécuter la commande suivante.
# chmod 644 /etc/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.
ctrl+o suivi de ctrl+x
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
voilà aux prochains arrêts la machine sera sauvegardée
Dans une console root, exécuter la commande suivante.
# grep 'rsync-backup:' /var/log/syslog
Dans une console, exécuter la commande suivante.
cat /var/log/rsync-backup.log
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