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 →
Ci-dessous, les différences entre deux révisions de la page.
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 [07/07/2013 13:30] gksam [Créer le script de sauvegarde] |
doc:systeme:rsync:backup [25/07/2013 10:32] gksam [Sauvegarde incrémentielle avec rsync] |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
Tags : {{tag>en-chantier à-tester à-placer}} | Tags : {{tag>en-chantier à-tester à-placer}} | ||
- | (//testé // - **gksam** 20-06-2013) | + | (//testé // - **gksam** 25-07-2013) |
Le retour sur le forum est ici : [[http://debian-facile.org/viewtopic.php?id=7061 | Lien vers le forum concernant ce tuto]] | Le retour sur le forum est ici : [[http://debian-facile.org/viewtopic.php?id=7061 | Lien vers le forum concernant ce tuto]] | ||
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs ! | N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs ! | ||
- | ajout prévu : | + | * Objet : Sauvegarder les dossiers et fichiers à l'arrêt d'une machine. Envoie des mails locaux en cas d'erreur. |
- | 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) | * Niveau requis : DÉBUTANT(E) | ||
Ligne 61: | Ligne 58: | ||
Donc, dans une console, exécuter la commande suivante. | Donc, dans une console, exécuter la commande suivante. | ||
<code> | <code> | ||
- | $ dpkg --list 'rsync' && echo "rsync est installé" || echo "rsync n'est pas installé" | + | $ ( dpkg --list 'rsync' 2>&1 > /dev/null ) && echo "rsync est installé" || echo "rsync n'est pas installé" |
</code> | </code> | ||
Ligne 72: | Ligne 69: | ||
===== Créer le script de sauvegarde ===== | ===== Créer le script de sauvegarde ===== | ||
- | ==== Créer le fichier rsync-backup.sh dans le dossier /etc/init.d ==== | + | ==== Créer le fichier rsync-backup dans le dossier /etc/init.d ==== |
Dans une console en root, exécuter la commande suivante. | Dans une console en root, exécuter la commande suivante. | ||
<code> | <code> | ||
- | # touch /etc/init.d/rsync-backup.sh | + | # touch /etc/init.d/rsync-backup |
</code> | </code> | ||
- | ==== Modifier les droits du fichier rsync-backup.sh pour qu'il devienne exécutable ==== | + | ==== Modifier les droits du fichier rsync-backup pour qu'il devienne exécutable ==== |
Dans une console root, exécuter la commande suivante. | Dans une console root, exécuter la commande suivante. | ||
<code> | <code> | ||
- | # chmod 755 /etc/init.d/rsync-backup.sh | + | # chmod 755 /etc/init.d/rsync-backup |
</code> | </code> | ||
- | ==== Copier le contenu du fichier rsync-backup.sh ==== | + | ==== Copier le contenu du fichier rsync-backup ==== |
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/init.d/rsync-backup.sh | + | # nano /etc/init.d/rsync-backup |
</code> | </code> | ||
Ligne 97: | Ligne 94: | ||
# Provides: rsync-backup | # Provides: rsync-backup | ||
# Required-Start: | # Required-Start: | ||
- | # Required-Stop: $all | + | # Required-Stop: $local_fs $network $named $remote_fs $syslog $time |
# Should-Stop: | # Should-Stop: | ||
# Default-Start: | # Default-Start: | ||
Ligne 123: | Ligne 120: | ||
# retourner 2 en cas d'échec | # retourner 2 en cas d'échec | ||
[ ! -w $point_montage ] && return 2; | [ ! -w $point_montage ] && return 2; | ||
+ | |||
+ | # si le dossier up-to-date n'existe pas alors créer le dossier up-to-date | ||
+ | [ ! -d $point_montage/$nom_hote/up-to-date ] && mkdir -p $point_montage/$nom_hote/up-to-date | ||
+ | |||
+ | # si le dossier increment n'existe pas alors créer le dossier increment | ||
+ | [ ! -d $point_montage/$nom_hote/increment ] && mkdir -p $point_montage/$nom_hote/increment | ||
# exécuter la commande rsync de sauvegarde | # exécuter la commande rsync de sauvegarde | ||
Ligne 267: | Ligne 270: | ||
==== 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 273: | Ligne 278: | ||
==== 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 279: | Ligne 286: | ||
==== 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 285: | Ligne 294: | ||
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 318: | Ligne 342: | ||
- /home/*/.macromedia/ | - /home/*/.macromedia/ | ||
- /home/*/.mozilla/ | - /home/*/.mozilla/ | ||
+ | - /home/*/.pulse/ | ||
- /home/*/.pulse-cookie | - /home/*/.pulse-cookie | ||
- /home/*/.recently-used | - /home/*/.recently-used | ||
Ligne 325: | Ligne 350: | ||
- /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 363: | Ligne 382: | ||
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 ==== |
+ | |||
+ | ctrl+o suivi de ctrl+x | ||
+ | |||
+ | ===== 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> | ||
==== 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 le lancement automatique de la sauvegade (cron) ===== |
+ | |||
+ | ==== Éditer le fichier contenant les cron ==== | ||
+ | |||
+ | Pour éditer le fichier, dans une console en root, exécuter la commande suivante. | ||
+ | |||
+ | <code> | ||
+ | # crontab -e | ||
+ | </code> | ||
+ | |||
+ | ==== Ajouter la tâche à exécuter ==== | ||
+ | |||
+ | La ligne suivante et à copier puis à coller dans l'éditeur de de crons. | ||
+ | |||
+ | note : la sauvegarde sera lancé à 4H00 du matin. (on est rarement derrière son pc à 4H00 et cela évite les problèmes de changements d'heures) | ||
+ | |||
+ | <code> | ||
+ | 0 4 * * * invoke-rc.d rsync-backup stop | ||
+ | </code> | ||
+ | |||
+ | ==== Sauvegarder le fichier et quitter l'éditeur de cron ==== | ||
+ | |||
+ | 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. | Dans une console root, exécuter la commande suivante. | ||
Ligne 379: | Ligne 467: | ||
===== Utilisation ===== | ===== Utilisation ===== | ||
- | voilà aux prochains arrêts la machine sera sauvegardée | + | Aux prochains arrêts ou si la machine n'est pas arrêtée, tous les jours à 4H00 du matin, la machine sera sauvegardée. |
+ | |||
+ | ==== Exécuter une sauvegarde manuellement ==== | ||
+ | |||
+ | Dans une console root, exécuter la commande suivante. | ||
+ | |||
+ | <code> | ||
+ | # invoke-rc.d rsync-backup stop | ||
+ | </code> | ||
==== Vérifier que la sauvegarde fonctionne ==== | ==== Vérifier que la sauvegarde fonctionne ==== | ||
+ | |||
Dans une console root, exécuter la commande suivante. | Dans une console root, exécuter la commande suivante. | ||
Ligne 395: | Ligne 492: | ||
===== Désinstallation ===== | ===== Désinstallation ===== | ||
+ | |||
Dans une console root, exécuter les commandes suivantes. | Dans une console root, exécuter les commandes suivantes. | ||
+ | |||
<code> | <code> | ||
# update-rc.d rsync-backup remove | # update-rc.d rsync-backup remove | ||
- | # rm [[/etc/init.d/rsync-backup.sh]] | + | # supprimer la tâche dans crontab |
- | # rm [[/etc/rsync-backup-include]] | + | # crontab -e |
+ | # rm /etc/init.d/rsync-backup | ||
+ | # rm /etc/rsync-backup-include | ||
+ | # rm /etc/rsync-backup.conf | ||
+ | # rm /etc/logrotate.d/rsync-backup | ||
# rm /var/log/rsync-backup.log | # rm /var/log/rsync-backup.log | ||
# apt-get purge rsync -y | # apt-get purge rsync -y | ||
</code> | </code> |