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 20/05/2023, 04:15]
Benjamin Loison [Utilisation] Correction d'une phrase.
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 38: Ligne 51:
 </​note>​ </​note>​
  
-=====Utilisation=====+<note tip>Vous pouvez aussi consulter la [[https://​github.com/​rsnapshot/​rsnapshot?​tab=readme-ov-file#​configuration|documentation en anglais]].
  
-Pour tester votre configuration utiliser l'​option -t suivi de l'​intervalle choisi ​:+Le fichier ​de configuration original est [[https://​github.com/​rsnapshot/​rsnapshot/​blob/​master/​rsnapshot.conf.default.in|là]].</​note>​
  
-  rsnapshot -t hourly+Les paramètres principaux sont :
  
-Pour exécuter manuellement logrotate ​pour un intervalle donné (rien de plus simple ;-) )+  * ''​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). 
 +  * ''​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.
  
-  ​rsnapshot hourly+<​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'​utilisation. C'est pourquoi on trouve maintenant cette nouvelle nomenclature en alphabet grec.</​note>​
  
-===== Désinstallation ​=====+===== Utilisation ​=====
  
-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.+==== Aide ====
  
-===== Liens =====+La commande ''​[[man>​rsnapshot]] help''​ permet d'​afficher (en anglais) la liste des commandes disponibles.
  
-  * **(en)** [[http://​rsnapshot.org|Site officiel]]+==== Test ====
  
 +Pour tester sa configuration,​ utiliser l'​option ''​-t''​ suivi de l'​intervalle choisi :
 +  rsnapshot -t alpha
  
-----+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>​
  
 +==== Automatisation ====
 +
 +Il existe plusieurs méthodes pour automatiser la création de //​snapshots//​.
 +
 +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]].
 +
 +=== Méthode cron ===
 +
 +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
 +# 30 3  * * * root /​usr/​bin/​rsnapshot beta
 +# 0  3  * * 1 root /​usr/​bin/​rsnapshot gamma
 +# 30 2  1 * * root /​usr/​bin/​rsnapshot delta
 +</​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]]//.
 +
 +=== Méthode timer de systemd ===
 +
 +[[:​systemd]] remplace de plus en plus [[:cron]] sur les [[:​distributions]].
 +
 +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é]]))
 +
 +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
 +
 +==== 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 instantanés =====
 +
 +L'​instantané le plus récent est disponible dans la répertoire ''​rsnapshot/​alpha.0/​localhost''​.
 +
 +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).
 +
 +<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>​
 +
 +<​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.1684548945.txt.gz
  • Dernière modification: Le 20/05/2023, 04:15
  • par Benjamin Loison