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 | ||
utilisateurs:philou92:tutos:sauvegarde-systeme-leger [03/07/2017 22:52] Philou92 [Mes sources d'inspiration] |
utilisateurs:philou92:tutos:sauvegarde-systeme-leger [03/07/2017 23:03] Philou92 [Utilisation] |
||
---|---|---|---|
Ligne 35: | Ligne 35: | ||
Il permet de récupérer les configurations des paquets du système. Bien que je n'ai pas eu à m'en servir, ce serait bête de ne pas les avoirs sous la main le jour ou votre barbu local vous dira c'est c.. de ne pas les avoirs sauvegarder... | Il permet de récupérer les configurations des paquets du système. Bien que je n'ai pas eu à m'en servir, ce serait bête de ne pas les avoirs sous la main le jour ou votre barbu local vous dira c'est c.. de ne pas les avoirs sauvegarder... | ||
- | N'oubliez pas qu'en matière de sauvegarde le mieux est l'ami du bien. ;-) | + | <note tip>En matière de sauvegarde le mieux est l'ami du bien. ;-)</note> |
Pour l'installer <code root>apt-get update && apt-get install debconf-utils</code> | Pour l'installer <code root>apt-get update && apt-get install debconf-utils</code> | ||
Ligne 51: | Ligne 51: | ||
- | ===== Utilisation ===== | + | ===== Mise en place du système de sauvegarde ===== |
+ | ==== Préparation du disque dur ==== | ||
+ | |||
+ | Récupérer l'UUID du disque de sauvegarde : | ||
+ | blkid | ||
+ | |||
+ | repérez votre disque comme ici : | ||
+ | LABEL="Sauvegarde" UUID="8486c62b-ad6f-4966-990e-822f729a01c3" TYPE="ext4" PARTUUID="f239042f-01" | ||
+ | |||
+ | editez votre fichier /etc/fstab avec votre éditeur favori (nano, vim) et ajoutez la ligne suivante | ||
+ | #UUID=8486c62b-ad6f-4966-990e-822f729a01c3 /mnt/sauvegarde ext4 defaults,nofail | ||
+ | ,noauto 0 | ||
+ | |||
+ | La ligne est pour l'instant commentée | ||
+ | |||
+ | |||
+ | |||
+ | Créer le fichier suivant : sauvegarde.service dans le répertoire /etc/systemd/system/ | ||
+ | |||
+ | [Unit] | ||
+ | Description=backupbidule | ||
+ | Before=shutdown.target reboot.target halt.target | ||
+ | |||
+ | [Service] | ||
+ | Type=oneshot | ||
+ | ExecStart=/bin/true | ||
+ | ExecStop=/root/backup/rsync-backup.sh | ||
+ | RemainAfterExit=yes | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | |||
+ | |||
+ | systemctl daemon-reload | ||
+ | systemctl enable sauvegarde.service | ||
+ | systemctl start sauvegarde.service | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === Création d'un groupe utilisateurs "sauvegarde" === | ||
+ | Ce groupe va permettre à des utilisateurs de confiance (vous à priori) à déclencher une sauvegarde ponctuelle. | ||
+ | créer le groupe sauvegarde | ||
+ | addgroup sauvegarde | ||
+ | Ajout du groupe « sauvegarde » (GID 1003)... | ||
+ | Fait. | ||
+ | |||
+ | |||
+ | -ajouter un ou plusieurs <USER> habilité(s) à déclencher une sauvegarde ponctuelle au groupe "sauvegarde". | ||
+ | adduser <USER> sauvegarde | ||
+ | Ajout de l'utilisateur « <USER> » au groupe « sauvegarde »... | ||
+ | Ajout de l'utilisateur <USER> au groupe sauvegarde | ||
+ | Fait. | ||
+ | |||
+ | -Créer le répertoire /usr/local/sauvegarde/ | ||
+ | cd /usr/local | ||
+ | mkdir sauvegarde | ||
+ | -A l'intérieur faire un | ||
+ | touch rsync-backup-user.date | ||
+ | touch rsync-backup-user.sh avec les droits d'exécution pour root uniquement et ajouter le script suivant : | ||
+ | #! /bin/sh | ||
+ | touch /usr/local/sauvegarde/rsync-backup-user.date | ||
+ | exit | ||
+ | -ajouter les deux fichier au groupe sauvegarde | ||
+ | chgrp sauvegarde rsync-backup-user.date | ||
+ | chgrp sauvegarde rsync-backup-user.sh | ||
+ | -modifiez les droits des deux fichiers comme suit: | ||
+ | chmod 750 rsync-backup-user.sh | ||
+ | chmod 660 rsync-backup-user.date | ||
+ | - vérifiez les droits : | ||
+ | ls -al | ||
+ | drwxr-sr-x 2 root staff 4096 juin 29 22:05 . | ||
+ | drwxrwsr-x 11 root staff 4096 juin 29 22:03 .. | ||
+ | -rw-rw---- 1 root sauvegarde 0 juin 29 22:03 rsync-backup-user.date | ||
+ | -rwxr-x--- 1 root sauvegarde 68 juin 29 22:05 rsync-backup-user.sh | ||
+ | |||
+ | ************************************** | ||
+ | |||
+ | créer le répertoire /root/backup/ | ||
+ | A l'intérieur | ||
+ | Faire un touch rsync-backup.log | ||
+ | Faire un touch rsync-backup.date | ||
+ | |||
+ | créer le fichier rsync-backup.sh avec les droits d'exécution pour root uniquement et ajouter le script suivant: | ||
+ | (modifier la ligne 27 avec l'UUID de votre disque) | ||
+ | |||
+ | #! /bin/sh | ||
+ | nom_hote=`hostname` | ||
+ | SOURCE="/" | ||
+ | MONTAGE="/mnt/sauvegarde" | ||
+ | DESTINATION1="/mnt/sauvegarde/BANK1" | ||
+ | DESTINATION2="/mnt/sauvegarde/BANK2" | ||
+ | BANKSTATUS="/mnt/sauvegarde/BANK.status" | ||
+ | JOURNAL="/root/backup/rsync-backup.log" | ||
+ | LASTDATE="/root/backup/rsync-backup.date"i | ||
+ | NBJOUR=$((($(date -u +%s) - $(date -ur $LASTDATE +%s))/86400)) | ||
+ | APPELUSER="/usr/local/sauvegarde/rsync-backup-user.date" | ||
+ | NBJOURUSER=$((($(date -u +%s) - $(date -ur $APPELUSER +%s))/86400)) | ||
+ | |||
+ | |||
+ | if [ $NBJOUR -lt 7 ]; | ||
+ | then | ||
+ | echo "`date` Pas le moment" >> $JOURNAL | ||
+ | if [ $NBJOURUSER -lt 7 ]; | ||
+ | then | ||
+ | touch -t 201701010000 $APPELUSER | ||
+ | else | ||
+ | exit | ||
+ | fi | ||
+ | fi | ||
+ | |||
+ | #rsync_backup_conf='/root/backup/rsync-backup.conf' | ||
+ | mount UUID=8486c62b-ad6f-4966-990e-822f729a01c3 $MONTAGE | ||
+ | if [ -f $BANKSTATUS ]; then | ||
+ | echo "`date` Montage disque OK" >> $JOURNAL | ||
+ | VALSAUVEGARDE=`cat $BANKSTATUS` | ||
+ | if [ "$VALSAUVEGARDE" = "BANK1" ]; then | ||
+ | DESTINATION=$DESTINATION2 | ||
+ | VALSAUVEGARDE="BANK2" | ||
+ | elif [ "$VALSAUVEGARDE" = "BANK2" ]; then | ||
+ | DESTINATION=$DESTINATION1 | ||
+ | VALSAUVEGARDE="BANK1" | ||
+ | else | ||
+ | echo "`date` Echec sauvegarde SYSTEME: Contenu $BANKSTATUS non conforme" >> $JOURNAL | ||
+ | umount $MONTAGE | ||
+ | exit | ||
+ | fi | ||
+ | else | ||
+ | echo "`date` Echec sauvegarde SYSTEME: fichier $BANKSTATUS introuvable" >> $JOURNAL | ||
+ | exit | ||
+ | fi | ||
+ | |||
+ | |||
+ | if [ -d $DESTINATION ] ; | ||
+ | then | ||
+ | rsync_backup_include='/root/backup/rsync-backup-include' | ||
+ | dpkg --get-selections > $DESTINATION/dpkg-selections.list | ||
+ | # nécéssite l'installation du paquet debconf-utils | ||
+ | debconf-get-selections > $DESTINATION/debconf-selections | ||
+ | /usr/bin/rsync -av --delete-after $SOURCE $DESTINATION --exclude-from=$rsync_backup_include --exclude='**' | ||
+ | touch $LASTDATE | ||
+ | echo "`date` Sauvegarde SYTEME OK: sur $DESTINATION" >> $JOURNAL | ||
+ | echo $VALSAUVEGARDE > $BANKSTATUS | ||
+ | # umount $MONTAGE | ||
+ | else | ||
+ | echo "`date` Echec sauvegarde SYSTEME: répertoire $DESTINATION introuvable" >> $JOURNAL | ||
+ | umount $MONTAGE | ||
+ | exit | ||
+ | fi | ||
+ | #exit 0 | ||
+ | |||
+ | |||
+ | # Variables d'environnement | ||
+ | SOURCE="/home" | ||
+ | DESTINATION="/mnt/sauvegarde" | ||
+ | ACTUEL="/mnt/sauvegarde/backuphome/Actuel" | ||
+ | BACKUP="/mnt/sauvegarde/backuphome/$(date +'%d-%m-%Y')" | ||
+ | T="$DESTINATION/backuphome/.superpointeur.txt" | ||
+ | LISTEEXCLUSIONS="/root/backup/rsync-backup-include2" | ||
+ | |||
+ | # Codes d'erreur | ||
+ | E_REPABSENT=65 | ||
+ | E_POINTEURABSENT=66 | ||
+ | |||
+ | echo $DESTINATION | ||
+ | |||
+ | # test 1 | ||
+ | if [ -d $DESTINATION/backuphome ] && [ -d $DESTINATION/.backuphome ] ; | ||
+ | then # les répertoires existent | ||
+ | echo "répertoires trouvés" | ||
+ | |||
+ | else | ||
+ | |||
+ | echo "`date` Echec sauvegarde HOME: répertoires de sauvegarde introuvables." >> $JOURNAL | ||
+ | # Vérifier si le support de sauvegarde est monté | ||
+ | umount $MONTAGE | ||
+ | exit $E_REPABSENT | ||
+ | fi # fin test 1 | ||
+ | |||
+ | # Test 2 | ||
+ | if [ -e "$T" ] ; | ||
+ | then # le répertoire d'archivage sécurisé est déjà monté | ||
+ | echo "`date` Echec sauvegarde HOME Le dossier sécurisé est déjà monté." >> $JOURNAL | ||
+ | # Démonter le répertoire sécurisé avant l'utilisation du script." | ||
+ | umount $MONTAGE | ||
+ | exit $E_POINTEURABSENT | ||
+ | |||
+ | else # Il faut monter le répertoire d'archivage sécurisé | ||
+ | chmod 750 $DESTINATION/backuphome | ||
+ | #Déchiffrage du répertoire | ||
+ | cat /home/virtualdebian/Documents/.clefsauvegarde | encfs --stdinpass -v "$DESTINATION/.backuphome" "$DESTINATION/backuphome" | ||
+ | # Coffre ouvert la sauvegarde sécurisée va démarrer! | ||
+ | # crée le répertoire Backup du jour | ||
+ | mkdir -p "$BACKUP" | ||
+ | # crée la sauvegarde | ||
+ | /usr/bin/rsync -av --delete --exclude-from $LISTEEXCLUSIONS --backup --backup-dir="$BACKUP" "$SOURCE" "$ACTUEL" --exclude='**' | ||
+ | # supprime le répertoire backup s'il est vide | ||
+ | rmdir --ignore-fail-on-non-empty "$BACKUP" | ||
+ | # démonte le répertoire en clair | ||
+ | fusermount -u "$DESTINATION/backuphome" | ||
+ | chmod 440 $DESTINATION/backuphome | ||
+ | echo "`date` Sauvegarde HOME OK" >> $JOURNAL | ||
+ | umount $MONTAGE | ||
+ | fi # fin test 2 | ||
+ | |||
+ | exit 0 | ||
+ | |||
+ | ************** | ||
+ | |||
+ | faire un touch rsync-backup-include et ajouter les lignes suivantes : | ||
+ | |||
+ | # La commande rsync utilisée inclue / (root) et exclue tout. Cela ne sauvegarde rien. Le fichier rsync-backup-include permet d'inclure ce que l'on veur sauvegarder. | ||
+ | # (note : pour plus d'information voir la page de manuel de rsync dans les sections : FILTER RULES, INCLUDE/EXCLUDE PATTTERN RULES, MERGE-FILE FILTviER RULES) | ||
+ | # à 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 | ||
+ | - /home/virtualdebian/.cache | ||
+ | - /home/test/.cache | ||
+ | |||
+ | |||
+ | # sauvegarder le contenu du dossier /etc | ||
+ | + /etc/ | ||
+ | + /etc/** | ||
+ | |||
+ | # sauvegarder le contenu du dossier /var | ||
+ | + /var/ | ||
+ | + /var/spool/ | ||
+ | + /vat/spool/** | ||
+ | + /var/backups/ | ||
+ | + /var/backups/** | ||
+ | + /var/lib/ | ||
+ | + /var/lib/** | ||
+ | + /var/games/ | ||
+ | + /var/games/** | ||
+ | + /var/lock/ | ||
+ | + /var/lock/** | ||
+ | + /var/log/ | ||
+ | + /var/log/** | ||
+ | + /var/mail/ | ||
+ | + /var/mail/** | ||
+ | + /var/opt/ | ||
+ | + /var/opt/** | ||
+ | + /var/cache/ | ||
+ | + /var/cache/apt/ | ||
+ | + /var/cache/apt/** | ||
+ | |||
+ | # sauvegarder le contenu du dossier /usr | ||
+ | + /usr/ | ||
+ | + /usr/local/ | ||
+ | + /usr/local/** | ||
+ | |||
+ | # sauvegarder le contenu de /root | ||
+ | + /root/ | ||
+ | + /root/** | ||
+ | |||
+ | # sauvegarder le contenu de /home | ||
+ | + /home/ | ||
+ | + /home/** | ||
+ | |||
+ | |||
+ | # exclure tout (comme ça on est sûr) | ||
+ | - ** | ||
+ | |||
+ | ***************** | ||
+ | |||
+ | faire un touch rsync-backup-include2 et ajouter les lignes suivantes : | ||
+ | |||
+ | # La commande rsync utilisée inclue / (root) et exclue tout. Cela ne sauvegarde rien. Le fichier rsync-backup-include permet d'inclure ce que l'on veur sauvegarder. | ||
+ | # (note : pour plus d'information voir la page de manuel de rsync dans les sections : FILTER RULES, INCLUDE/EXCLUDE PATTTERN RULES, MERGE-FILE FILTER RULES) | ||
+ | # à 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 | ||
+ | - /home/virtualdebian/.cache | ||
+ | - /home/test/.cache | ||
+ | |||
+ | |||
+ | # sauvegarder le contenu de /home | ||
+ | + /home/ | ||
+ | + /home/** | ||
+ | |||
+ | |||
+ | # exclure tout (comme ça on est sûr) | ||
+ | - ** | ||
+ | |||
+ | ********* | ||
+ | Créer un fichier .clefsauvegarde dans le répertoire <USER> de confiance : | ||
+ | /home/<USER>/Documents/.clefsauvegarde | ||
+ | |||
+ | Affecter les droits unique de lecture pour root. | ||
+ | en root : | ||
+ | chmod 400 /home/<USER>/Documents/.clefsauvegarde | ||
+ | Ajouter le mot de passe en texte à l'intérieur. | ||
Ligne 60: | Ligne 368: | ||
rsync-backup [[https://debian-facile.org/doc:systeme:rsync:backup]]. | rsync-backup [[https://debian-facile.org/doc:systeme:rsync:backup]]. | ||
+ | |||
J'ai repris beaucoup de principes de ce tuto, notamment l'admirable et instructive façon d'utiliser rsync (merci à gksam). | J'ai repris beaucoup de principes de ce tuto, notamment l'admirable et instructive façon d'utiliser rsync (merci à gksam). | ||
- | Deux tutos expliquant comment faire une sauvegarde - restauration complète du système (donc lourde). | + | Deux tutos expliquant comment faire une sauvegarde - restauration complète du système (donc lourde) : |
[[https://wiki.debian-fr.xyz/Restauration_ou_Reconstruction_de_sa_Debian_-_Racine_et_Home_s%C3%A9par%C3%A9s]] | [[https://wiki.debian-fr.xyz/Restauration_ou_Reconstruction_de_sa_Debian_-_Racine_et_Home_s%C3%A9par%C3%A9s]] | ||
[[https://wiki.debian-fr.xyz/Sauvegarder_sa_Debian_en_vue_d%27une_R%C3%A9installation_ou_Reconstruction_-_Racine_et_Home_s%C3%A9par%C3%A9s]] | [[https://wiki.debian-fr.xyz/Sauvegarder_sa_Debian_en_vue_d%27une_R%C3%A9installation_ou_Reconstruction_-_Racine_et_Home_s%C3%A9par%C3%A9s]] | ||
- | Le tuto encfs de ubuntu | + | Le tuto encfs de ubuntu : |
[[https://doc.ubuntu-fr.org/encfs]] | [[https://doc.ubuntu-fr.org/encfs]] |