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
rsnapshot [Le 22/01/2024, 14:28]
91.161.152.215 [Utilisation]
rsnapshot [Le 23/05/2025, 23:11] (Version actuelle)
krodelabestiole typos / pas forcément besoin de sudo pour la commande rsnapshot
Ligne 1: Ligne 1:
-{{tag>Xenial Bionic Focal Jammy sauvegarde}}+{{tag>Noble Jammy sauvegarde}}
  
 ====== rsnapshot ====== ====== rsnapshot ======
  
-**rsnapshot** est une application en ligne de commande de sauvegarde écrite en PERL, et basée sur [[rsync]] qui est lui-même un outil standard, puissant et fiable.+**rsnapshot** est une application en ligne de commande de sauvegarde écrite en PERL, et basée sur **[[:rsync]]** qui est lui-même un outil standard, puissant et fiable.
  
-rsnapshot gère les sauvegardes de manière incrémentielle,​ et permet à la fois de conserver différentes versions d'un fichier (il n'​écrase pas les anciennes versions), et d'​éviter la duplication physique des fichiers inchangés.\\+**rsnapshot** gère les sauvegardes de manière incrémentielle, en prenant des instantanés (//​snapshots//​ en anglais), et permet à la fois de conserver différentes versions d'un fichier (il n'​écrase pas les anciennes versions), et d'​éviter la duplication physique des fichiers inchangés.\\
 Ceci est rendu possible par un emploi intelligent des [[:​lien_physique_et_symbolique|liens physiques]] : même si on trouve l'​intégralité des fichiers dans chaque répertoire de sauvegarde (un nouveau répertoire est créé à chaque sauvegarde) ils ne prennent qu'une seule fois leur place sur le disque tant qu'ils restent inchangés (et ne sont "​réellement"​ effacés que si on supprime absolument tous les liens physiques). Ceci est rendu possible par un emploi intelligent des [[:​lien_physique_et_symbolique|liens physiques]] : même si on trouve l'​intégralité des fichiers dans chaque répertoire de sauvegarde (un nouveau répertoire est créé à chaque sauvegarde) ils ne prennent qu'une seule fois leur place sur le disque tant qu'ils restent inchangés (et ne sont "​réellement"​ effacés que si on supprime absolument tous les liens physiques).
  
-rsnapshot permet de faire des sauvegardes locales (une copie régulière d’un disque sur un autre) ou distantes (via une connexion SSH) ; rsnapshot tourne alors sur le serveur de backup, et la machine qui se voit ainsi sauvegardée est totalement passive, il faut juste qu’elle ait un serveur SSH activé.+**rsnapshot** permet de faire des sauvegardes locales (une copie régulière d’un disque sur un autre) ou distantes (via une connexion SSH) ; rsnapshot tourne alors sur le serveur de backup, et la machine qui se voit ainsi sauvegardée est totalement passive, il faut juste qu’elle ait un serveur SSH activé.
  
-Quelques scripts rsync/ssh pourraient évidemment faire la même chose que rsnapshot, mais rsnapshot est fiable et sa configuration triviale, alors pourquoi s’en passer ?((Texte tiré d'un article du site geekfault.org))+Quelques scripts ​[[:rsync]] [[:​SSH]] ​pourraient évidemment faire la même chose que **rsnapshot**, mais **rsnapshot** est fiable et sa configuration triviale, alors pourquoi s’en passer ?((Texte tiré d'un article du site geekfault.org))
  
-Par rapport à d'​autres outils de sauvegarde incrémentielle ou de versioning, rsnapshot exploite les fonctionnalités ordinaires de l'​environnement et du système de fichier (son fonctionnement est limpide, pas besoin d'​outils spécifiques pour gérer ses sauvegardes après coup ou restaurer quoi que ce soit).+Par rapport à d'​autres outils de sauvegarde incrémentielle ou de //versioning//**rsnapshot** exploite les fonctionnalités ordinaires de l'​environnement et du système de fichier (son fonctionnement est limpide, pas besoin d'​outils spécifiques pour gérer ses sauvegardes après coup ou restaurer quoi que ce soit).\\ 
 +Cependant pour de la [[:​sauvegarde]] certains outils tels que **[[:​restic]]** ou **[[:​borgbackup|borg]]** proposent des fonctionnalités proches avec de meilleures performances. Il existe aussi des applications telles que **[[:​déjà-dup]]**,​ qui en plus d'​être installée par défaut sur Ubuntu, offre aussi des fonctionnalités semblables avec de meilleures performances et une interface graphique exceptionnellement facile d'​utilisation.
  
-C’est un logiciel libre sous licence **[[wpfr>​Licence_publique_générale_GNU|GNU GPL]]**.+**rsnapshot** ​est un logiciel libre distribué ​sous licence **[[wpfr>​Licence_publique_générale_GNU|GNU GPL]]**
 + 
 +==== Quand utiliser rsnapshot ? ==== 
 + 
 +**rsnapshot** permet de conserver des fichiers, dans des versions différentes capturées dans le temps. On trouve de nombreuses applications qui proposent des fonctionnalités similaire de [[:​sauvegarde|sauvegardes]] et //​snapshots//​. 
 + 
 +Pour du texte ou du code informatique,​ c'est aussi ce que font les [[wpfr>​Gestion_de_versions|gestionnaires de version]], comme **[[:​Git]]** ou **[[wpfr>​Apache_Subversion|SVN]]**. Et ils le font d'​ailleurs mieux : ces gestionnaires de version capturent chaque version d'un fichier lorsqu'​il est modifié, et proposent des fonctionnalités avancées de fusion, de récupération d'une portion spécifique du texte, etc. 
 + 
 +En comparaison **rsnapshot** est plus versatile et fonctionne avec tous les types de fichiers, dont les fichiers système (binaires compilés) ou multimédia par exemple (**Git** ne serait pas efficace du tout pour sauvegarder plusieurs versions d'une vidéo, il ferait perdre un énorme espace de stockage). 
 + 
 +Par rapport aux outils ordinaires de [[:​sauvegarde]],​ disposer d'​instantanés permet de retrouver une version antérieure,​ sauvegardée à une date spécifique,​ d'un document. Une sauvegarde ordinaire ne protège pas d'une bêtise enregistrée,​ mais seulement d'une perte accidentelle.\\ 
 +**rsnapshot** permet ainsi de conserver différentes versions antérieures de ses fichiers indépendamment de leur type. C'est donc l'​idéal pour sauvegarder son espace ''​[[:​arborescence#​considerations_avancees|/​home]]''​ personnel par exemple.
  
 ===== Pré-requis ===== ===== Pré-requis =====
    
   * Disposer des [[:​sudo|droits d'​administration]].   * Disposer des [[:​sudo|droits d'​administration]].
-  * Disposer d'une connexion à Internet configurée ​et activée.+  * **rsnapshot** n'est malheureusement pas traduit en français. Les indications concernant la configuration ​et les messages d'​erreur ou de succès sont rédigés en anglais.
  
 ===== Installation ===== ===== Installation =====
  
-[[:​tutoriel:​comment_installer_un_paquet|Installez ​le paquet]] ​**[[apt>​rsnapshot]]**.+[[:​tutoriel:​comment_installer_un_paquet|Installer ​le paquet]] ​''​[[apt>​rsnapshot]]''​.
  
 ===== Configuration ===== ===== Configuration =====
 +
 +**rsnapshot** se configure en éditant le fichier ''/​etc/​rsnapshot.conf''​ avec [[:sudo|les droits d'​administration]].
  
 Commençons par créer une sauvegarde du fichier de configuration original : Commençons par créer une sauvegarde du fichier de configuration original :
   sudo cp /​etc/​rsnapshot.conf /​etc/​rsnapshot.conf.backup   sudo cp /​etc/​rsnapshot.conf /​etc/​rsnapshot.conf.backup
  
- +On peut ensuite ​[[:​tutoriel:​comment_modifier_un_fichier|ouvrir ​le fichier]] ​''​/​etc/​rsnapshot.conf''​ pour le modifier.
-Ensuite, ​[[:​tutoriel:​comment_modifier_un_fichier|ouvrez ​le fichier]] ​**/​etc/​rsnapshot.conf** en modification.+
  
 <note important>​ <note important>​
Ligne 37: Ligne 50:
   rsnapshot configtest   rsnapshot configtest
 </​note>​ </​note>​
-==== Exemple de contenu du fichier ==== 
-Consulter ​ [[https://​github.com/​rsnapshot/​rsnapshot/​blob/​master/​rsnapshot.conf.default.in|ce lien]] afin de savoir ce qu'il propose comme options de fonctionnement avant de décider de l'​installer. 
-<note warning>​FIXME Faut-il traduire les commentaires</​note>​ 
  
 +<note tip>Vous pouvez aussi consulter la [[https://​github.com/​rsnapshot/​rsnapshot?​tab=readme-ov-file#​configuration|documentation en anglais]].
  
 +Le fichier de configuration original est [[https://​github.com/​rsnapshot/​rsnapshot/​blob/​master/​rsnapshot.conf.default.in|là]].</​note>​
  
 +Les paramètres principaux sont :
  
-=====Utilisation===== +  * ''​snapshot_root''​ : c'est le [[:​chemins|chemin]] où seront stockées les sauvegardes. Si vous choisissez un appareil externe, qui peut éventuellement être débranché,​ pensez à empêcher la création automatique de ce répertoire en dé-commentant la ligne suivante : ''​no_create_root 1''​ (il suffit de retirer le caractère ''#'' ​au début de la ligne). 
-==== Aide au lancement ====+  * ''​backup points''​ : ce sont la configuration des éléments à sauvegarder. De nombreux exemples sont proposés à la fin du fichier.\\ Pour sauvegarder le répertoire ''/​home''​ :<​code>​backup /​home/​ localhost/</​code>​Depuis un serveur de sauvegarde, pour sauvegarder depuis un accès [[:SSH]] :<​code>​backup root@example.com:/​home/​ example.com/</​code>​ 
 +  * Les paramètres ''​include''​ et ''​exclude''​ permettent de définir des types de fichiers ou des éléments à inclure ou exclure. Ces paramètres sont passés directement à [[:​rsync#​exclure_des_fichiers|rsync]] via les options ''​%%--%%include-from''​ et ''​%%--%%exclude-from''​ de rsync. 
 +  * ''​retain''​ sert à définir le nombre de versions à conserver pour chaque période de sauvegarde (voir //alpha//, //beta// ci-dessous).\\ ​ Par défaut :  
 +    * 6 ''​alpha''​ (la sauvegarde //alpha// est effectuée toutes les 4 heures, en conserver 6 permet de couvrir une journée) 
 +    * 7 ''​beta''​ (tous les jours, 7 permet de couvrir une semaine) 
 +    * 4 ''​gamma''​ (chaque semaine, 4 permet de couvrir un mois). 
 +    * Évitez donc de modifier ces paramètres,​ en dehors de ''​delta'',​ que vous pouvez dé-commenter afin de définir le nombre de mois pendant lesquels vous souhaitez conserver les anciennes versions de vos fichiers.
  
-<code bash>​rsnapshot ​help +<note>Sur les anciennes versions de **rsnapshot**, ces différentes fréquences de sauvegarde étaient nommées //hourly//, //daily//, //weekly// et //monthly//C'​était sans doute plus éloquent, mais moins souple d'​utilisationC'est pourquoi on trouve maintenant cette nouvelle nomenclature en alphabet grec.</​note>​
-rsnapshot 1.4.5-2 +
-Usage: rsnapshot [-vtxqVD] [-c cfgfile] [command] [args] +
-Type "man rsnapshot"​ for more information.+
  
-rsnapshot is a filesystem snapshot utility. It can take incremental +===== Utilisation =====
-snapshots of local and remote filesystems for any number of machines.+
  
-rsnapshot comes with ABSOLUTELY NO WARRANTY. ​ This is free software, +==== Aide ====
-and you are welcome to redistribute it under certain conditions. +
-See the GNU General Public License for details.+
  
-Options: +La commande ''[[man>​rsnapshot]] help''​ permet d'afficher ​(en anglaisla liste des commandes disponibles.
-    -v verbose ​      - Show equivalent shell commands being executed. +
-    -t test          - Show verbose output, but don't touch anything. +
-                       This will be similar, but not always exactly the same +
-                       as the real output from a live run. +
-    -c [file       - Specify alternate config file (-c /​path/​to/​file) +
-    -q quiet         - Suppress non-fatal warnings. +
-    -V extra verbose - The same as -v, but with more detail. +
-    -D debug         - A firehose of diagnostic information. +
-    -x one_fs ​       - Don't cross filesystems ​(same as -x option to rsync).+
  
-Commands:</​code>​+==== Test ====
  
-==== Le test ====+Pour tester sa configuration,​ utiliser l'​option ''​-t''​ suivi de l'​intervalle choisi : 
 +  rsnapshot -t alpha
  
-Pour tester votre configuration utiliser l'option -t suivi de l'intervalle choisi ​:+Pour exécuter manuellement la création d'un instantané,​ qui déclenche aussi leur [[#rotation des instantanés|rotation]] pour un intervalle donné (rien de plus simple ;-) ) : 
 +  rsnapshot alpha 
 +<note warning>​Pour sauvegarder un niveau autre que ''​alpha'',​ il faut que le niveau précédent existe ​: 
 +  rsnapshot beta 
 +peut par exemple retourner : 
 +  rsnapshot/​alpha.23 not present (yet), nothing to copy 
 +soit en français : 
 +  rsnapshot/​alpha.23''​ n'est pas (encore) présent, rien à copier 
 +</​note>​
  
-  rsnapshot -t hourly +==== Automatisation ====
-ou +
-  sudo  rsnapshot -t alpha+
  
-Pour exécuter manuellement logrotate ​pour un intervalle donné (rien de plus simple ;-) )+Il existe plusieurs méthodes ​pour automatiser la création ​de //​snapshots//​.
  
-  ​rsnapshot ​hourly +Le paquet ''​[[apt>​rsnapshot]]''​ inclut un fichier ''/​etc/​cron.d/​rsnapshot'​'. C'est donc la méthode prévue, et probablement la plus simple, même si [[:cron]] est vieillissant et petit à petit remplacé par les //timers// de [[:​systemd]].
-ou +
-  sudo  ​rsnapshot ​ ​alpha +
-==== L'automaticité==== +
-=== Par technique crontable ===+
  
-Pour automatiser,​ il faut alors décommenter l'une ligne du fichier **/etc/cron.d/​rsnapshot** <code bash>als -ls /​etc/​cron.d/​rsnapshot +=== Méthode ​cron ===
-5 -rw-r--r-- 1 root root 472 Aug 22 18:49 /​etc/​cron.d/​rsnapshot +
-a@a:~$ cat /​etc/​cron.d/​rsnapshot +
-# This is a sample cron file for rsnapshot. +
-# The values used correspond to the examples in /​etc/​rsnapshot.conf. +
-# There you can also set the backup points and many other things. +
-+
-# To activate this cron file you have to uncomment the lines below. +
-# Feel free to adapt it to your needs.+
  
 +Pour activer la création de //​snapshots//​ répétitive,​ dé-commenter ces lignes du fichier ''/​etc/​cron.d/​rsnapshot''​ (en supprimant le caractère ''#''​ en début de ligne, qui la rend inopérante) :
 +<file - /​etc/​cron.d/​rsnapshot>​
 # 0 */4 * * * root /​usr/​bin/​rsnapshot alpha # 0 */4 * * * root /​usr/​bin/​rsnapshot alpha
 # 30 3  * * * root /​usr/​bin/​rsnapshot beta # 30 3  * * * root /​usr/​bin/​rsnapshot beta
 # 0  3  * * 1 root /​usr/​bin/​rsnapshot gamma # 0  3  * * 1 root /​usr/​bin/​rsnapshot gamma
-# 30 2  1 * * root /​usr/​bin/​rsnapshot delta </code+# 30 2  1 * * root /​usr/​bin/​rsnapshot delta 
-Consulter la signification des champs ​ [[http:cron|ici]] pour une adaptation.+</file
 +  ​* ''​alpha''​ se lance toutes les quatre heures. 
 +  * ''​beta''​ se lance tous les jours à 03h30. 
 +  * ''​gamma''​ se lance tous les lundi à 03h00. 
 +  * ''​delta''​ se lance tous les premiers du mois à 02h30. 
 +(voir //​[[#​Configuration]]//​)\\  
 +Si ce rythme ne convient pas, il est possible de le modifier : voir //[[:cron#​comment_fonctionne_cron|Comment fonctionne cron]]//.
  
-En résumé:  +=== Méthode ​timer de systemd ===
-  * alpha se lance toutes les quatre heures ​ tout le temps au heures exactes à partir de  0 heure. +
-  * beta se lance tous les jours à 3 heures trente. +
-  * gamma se lance  tous les lundi à 0 heure 30. +
-  * delta se lance tous les premiers du mois à 2 heures 30. +
-=== Par technique ​timer de systemd === +
-Consulter ces sites+
  
-https://github.com/​rsnapshot/​rsnapshot/​issues/​147+[[:systemd]] remplace de plus en plus [[:cron]] sur les [[:​distributions]].
  
-https://gist.github.com/​etskinner/a6d109838f3674360b5c73e6bbd9ca3b+La méthode n'est pas implémentée par le paquet ''​[[https://packages.ubuntu.com/​noble/​all/​rsnapshot/​filelist|rsnapshot]]''​. Il faut donc la mettre en place manuellement.((**(//​en//​)** [[https://github.com/rsnapshot/​rsnapshot/​issues/147|demande de fonctionnalité]]))
  
-https://​wiki.archlinux.org/​title/​Rsnapshot#​Automation+Il existe heureusement des exemples : 
 +  * https://​gist.github.com/​etskinner/​a6d109838f3674360b5c73e6bbd9ca3b 
 +  * https://​wiki.archlinux.org/​title/​Rsnapshot#​Automation 
 +  * https://​linux.claudeclerc.fr/​linuxaddict:​administrer:​sauvegarder
  
-https://​linux.claudeclerc.fr/​linuxaddict:​administrer:​sauvegarder+==== Rotation des instantanés ====
  
 +La rotation permet de supprimer les plus anciens //​snapshots//​ et de remplacer les anciens par les nouveaux (en les avançant d'une étape).
  
 +Le principe : l'​instantané ayant atteint la limite de rétention est supprimé, puis chaque numéro d'​instantané est incrémentés de 1. Le numéro le plus ancien du niveau précédent devient le numéro zéro du niveau suivant s'il a atteint la limite de rétention de sa catégorie (le dernier ''​alpha''​ devient le premier ''​beta''​ par exemple). Sinon rien ne se passe. Il ne s'agit que de renommer les répertoires,​ l'​opération est donc immédiate.
  
-===== Consultation des fichiers archivés ​===== +===== Consultation des instantanés ​=====
-FIXME +
-La première sauvegarde est disponible sous forme de  duplication dans la structure **/​var/​cache/​rsnapshot/​alpha.0/​localhost** +
-<code bash>​a@a:/​var/​cache/​rsnapshot/​alpha.0/​localhost$ ls -ls +
-total 11 +
-9 drwxr-xr-x 142 root root 245 Jan 22 11:09 etc +
-1 drwxr-xr-x ​  3 root root   3 Jan 18 12:05 home +
-1 drwxr-xr-x ​  3 root root   3 Jan 16 06:26 usr</​code>​+
  
-===== Désinstallation =====+L'​instantané le plus récent est disponible dans la répertoire ''​rsnapshot/​alpha.0/​localhost''​.
  
-Pour supprimer cette application,​ il suffit de [[:​tutoriel:​comment_supprimer_un_paquet|supprimer son paquet]] et de supprimer le fichier **/etc/cron.d/rsnapshot**. La configuration ​de l'​application sera conservée ​ou supprimée selon la méthode de désinstallation que vous choisirez.+Les identifiants des //snapshots// précédents sont incrémentés ​de 1. Plus un //​snapshot//​ est ancien, plus son numéro est élevé (nombre entier ​ou à plus forte raison lettre grecque).
  
-===== Liens =====+<code bash>ls -ls rsnapshot 
 +total 4 
 +1 drwxr-xr-x 3 root root 3 Jan 22 14:30 alpha.0 
 +1 drwxr-xr-x 3 root root 3 Jan 22 14:29 alpha.1 
 +1 drwxr-xr-x 3 root root 3 Jan 22 14:28 alpha.2 
 +1 drwxr-xr-x 3 root root 3 Jan 22 12:07 alpha.3 </​code>​
  
-  * **(en)** [[http://​rsnapshot.org|Site officiel]]+<​note>​ 
 +Chaque //​snapshot//​ contient l'​ensemble des données, mais tous les fichiers similaires, même multipliés dans chaque //​snapshot//,​ ne prennent qu'une seule fois leur espace sur le support de stockage ​(voir [[:lien_physique_et_symbolique|lien physique]] : un fichier n'est supprimé que lorsque tous les liens physiques l'​identifiant sont supprimés). 
 +</​note>​
  
 +===== Désinstallation =====
  
-----+Pour supprimer cette application,​ il suffit de [[:​tutoriel:​comment_supprimer_un_paquet|supprimer son paquet]] et de supprimer le fichier ''/​etc/​cron.d/​rsnapshot''​. La configuration de l'​application sera conservée ou supprimée selon la méthode de désinstallation que vous choisirez.
  
 +===== Voir aussi =====
 +
 +  * **(//​en//​)** [[http://​rsnapshot.org|Site officiel]]
 +  * [[https://​github.com/​rsnapshot/​rsnapshot|GitHub]]
 +  * un [[https://​forum-debian.fr/​wiki/​Rsnapshot|tutoriel en français]] sur un wiki Debian
 +  * une autre [[https://​wiki.calculate-linux.org/​fr/​rsnapshot|documentation en français]] sur le wiki Calculate Linux
 +
 +----
  
-//​Contributeurs ​principaux ​: [[utilisateurs:​macmonac|macmonac]].//+//​Contributeurs : [[:utilisateurs:​macmonac]], [[:​utilisateurs:​krodelabestiole]].//
  • rsnapshot.1705930093.txt.gz
  • Dernière modification: Le 22/01/2024, 14:28
  • par 91.161.152.215