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 | ||
linux:rsnapshot [15-12-2013 20:52] edmc73 |
linux:rsnapshot [03-09-2023 18:36] (Version actuelle) edmc73 [Démarrer le service] |
||
---|---|---|---|
Ligne 53: | Ligne 53: | ||
Comme bon vous semble. Pour mon cas, je veux sauvegarder tout le répertoire /var/www de mon serveur web distant vers mon serveur de backup ou rsnapshot est installé et ce de façon journalière. Je vais donc mettre | Comme bon vous semble. Pour mon cas, je veux sauvegarder tout le répertoire /var/www de mon serveur web distant vers mon serveur de backup ou rsnapshot est installé et ce de façon journalière. Je vais donc mettre | ||
- | backup | + | backup |
| | ||
La sauvegarde du répertoire /var/www de mon serveur web se fera sur mon serveur de backup dans / | La sauvegarde du répertoire /var/www de mon serveur web se fera sur mon serveur de backup dans / | ||
Si votre serveur web à un port ssh différent, vous pouvez le spécifier de cette façon. | Si votre serveur web à un port ssh différent, vous pouvez le spécifier de cette façon. | ||
- | backup | + | backup |
| | ||
- | <note warning> | + | <note warning> |
+ | Mettez toujours un / après un nom de répertoire | ||
===== Test ===== | ===== Test ===== | ||
Ligne 94: | Ligne 95: | ||
Vous pouvez lancer la commande suivante à la main | Vous pouvez lancer la commande suivante à la main | ||
- | rsnapshot daily | + | rsnapshot |
| | ||
Mais sachez qu'à chaque fois que vous la lancerez, vous décalerez votre sauvegarde. daily.0 deviendra daily.1 et la nouvelle sauvegarde sera daily.0 | Mais sachez qu'à chaque fois que vous la lancerez, vous décalerez votre sauvegarde. daily.0 deviendra daily.1 et la nouvelle sauvegarde sera daily.0 | ||
Ligne 163: | Ligne 164: | ||
Recherchez **RsyncServer**. Par défaut il est en **Manuel**, double-cliquez dessus, mettez le type de démarrage en automatique pour qu'il se lance à l' | Recherchez **RsyncServer**. Par défaut il est en **Manuel**, double-cliquez dessus, mettez le type de démarrage en automatique pour qu'il se lance à l' | ||
- | <note important> | + | <note important> |
+ | " | ||
+ | " | ||
+ | |||
+ | " | ||
+ | " | ||
+ | " | ||
+ | </ | ||
Ligne 240: | Ligne 248: | ||
fi | fi | ||
</ | </ | ||
+ | |||
+ | |||
+ | ===== Etude d'un cas : la gestion des " | ||
+ | |||
+ | Condition: sauvegarde sur une partition btrfs avec un rsnapshot configuré avec link_dest qui permet de dire à rsync de créer lui meme les liens dur. La sauvegarde s' | ||
+ | |||
+ | Et ben non, dans la dernière version de rsnapshot, celui-ci vérifie si le répertoire donné dans link_dest est vide, si c'est le cas, il va chercher plus loin | ||
+ | |||
+ | |||
+ | ===== Utiliser les snapshots de btrfs ===== | ||
+ | |||
+ | Inspiré du tuto http:// | ||
+ | |||
+ | Le tuto ci-dessus part d'un disque de backup en ext4 qu'il convertit ensuite en btrfs, donc lisez le si vous êtes dans ce cas.\\ | ||
+ | Ici on fait déjà nos backups sur une partition btrfs, on va modifier les appels aux commandes '' | ||
+ | L' | ||
+ | |||
+ | Si vous partez de rien, You must create hourly.0 as a BTRFS subvolume from the outset, otherwise it will be created as a directory and propogate itself. You lose the advantage of BTRFS. | ||
+ | # btrfs subvolume create daily.0 | ||
+ | # btrfs subvolume create monthly.0 | ||
+ | # rsnapshot -c / | ||
+ | ==== Script de gestion des snapshots ==== | ||
+ | |||
+ | Script **rsnapshot_plug_cp_btrfs** qui remplacera la commande **cp** | ||
+ | <file bash rsnapshot_plug_cp_btrfs> | ||
+ | #!/bin/bash | ||
+ | |||
+ | # Arg 1: -al | ||
+ | # Arg 2: / | ||
+ | # Arg 3: / | ||
+ | |||
+ | /sbin/btrfs subvolume snapshot $2 $3 | ||
+ | </ | ||
+ | |||
+ | Script **rsnapshot_plug_rm_btrfs** qui remplacera la commande **rm** | ||
+ | <file bash rsnapshot_plug_rm_btrfs> | ||
+ | #!/bin/bash | ||
+ | |||
+ | # Arg 1: -rf | ||
+ | # Arg 2: / | ||
+ | |||
+ | # echo 1: $1 2: $@ | ||
+ | |||
+ | # Essaie de supprimer le répertoire donné avec la commande btrfs subvolume delete en premier | ||
+ | # Si la commande échoue, on supprime le répertoire avec la commande rm | ||
+ | if [ " | ||
+ | # "on essaie de supprimer avec btrfs" | ||
+ | /sbin/btrfs subvolume delete $2 | ||
+ | error=$? | ||
+ | if [ $error -eq 13 ]; then | ||
+ | # EC 13 => Le répertoire spécifié n'est pas un sous volume | ||
+ | rm $@ | ||
+ | elif [ $error -ne 0 ]; then | ||
+ | echo Erreur en supprimant avec btrfs $? | ||
+ | fi | ||
+ | else | ||
+ | rm $@ | ||
+ | fi | ||
+ | </ | ||
+ | |||
+ | Copier ces fichiers ou vous le souhaitez et rendez les exécutables avec **chmod 755** | ||
+ | |||
+ | ==== Migration ==== | ||
+ | |||
+ | Maintenant il faut migrer nos répertoires de sauvegarde en sous volume btrfs. Un script plus poussé est fourni dans le tuto en lien au début de ce chapitre. Ici nous le prenons le cas de backup uniquement journalier (daily) | ||
+ | |||
+ | D' | ||
+ | mkdir old | ||
+ | mv daily.* old | ||
+ | |||
+ | Maintenant nous allons créer un sous volume du plus vieux des backups et y copier son contenu | ||
+ | btrfs subvolume create daily.29 | ||
+ | rsync -avi --numeric-ids old/ | ||
+ | |||
+ | Ensuite nous allons créer un snapshot de ce sous volume et synchroniser celui avec le backup suivant et remonter ainsi jusqu' | ||
+ | <code bash> | ||
+ | btrfs subvolume snapshot daily.29 daily.28 | ||
+ | rsync -avi --delete --numeric-ids old/ | ||
+ | |||
+ | btrfs subvolume snapshot daily.28 daily.27 | ||
+ | rsync -avi --delete --numeric-ids old/ | ||
+ | |||
+ | ... | ||
+ | |||
+ | btrfs subvolume snapshot daily.1 daily.0 | ||
+ | rsync -avi --delete --numeric-ids old/ | ||
+ | </ | ||
+ | |||
+ | On doit aussi pouvoir faire un petit script avec une boucle | ||
+ | <code bash> | ||
+ | for (( c=29; c>0; c-- )) | ||
+ | do | ||
+ | btrfs subvolume snapshot daily.$c daily.$(($c - 1)) | ||
+ | rsync -avi --delete --numeric-ids old/ | ||
+ | done | ||
+ | </ | ||
+ | |||
+ | On supprime ensuite les vieux backups | ||
+ | rm -fr old | ||
+ | |||
+ | ==== Configuration ==== | ||
+ | |||
+ | Maintenant il faut modifier votre fichier de config **rsnapshot.conf**\\ | ||
+ | Je ne sais pas si l' | ||
+ | no_create_root | ||
+ | |||
+ | Maintenant nos 2 scripts. Adapter suivant le chemin ou vous avez placé vos scripts | ||
+ | cmd_cp | ||
+ | cmd_rm | ||
+ | |||
+ | A tester aussi | ||
+ | one_fs | ||
+ | |||