<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.ainw.org/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>Mon wiki - obsolete:informatique:projets</title>
        <description></description>
        <link>https://www.ainw.org/wiki/</link>
        <lastBuildDate>Mon, 04 May 2026 11:45:31 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://www.ainw.org/wiki/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
            <title>Mon wiki</title>
            <link>https://www.ainw.org/wiki/</link>
        </image>
        <item>
            <title>sauvegarde_donnees</title>
            <link>https://www.ainw.org/wiki/doku.php?id=obsolete:informatique:projets:sauvegarde_donnees&amp;rev=1745165048&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;mise_en_place_de_sauvegardes&quot;&gt;Mise en place de sauvegardes&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Avec les ordinateurs, il y a 2 types d&amp;#039;utilisateurs. Ceux qui ont déjà perdu des données et ceux qui vont en perdre. Généralement, les premiers mettent en place des systèmes pour parer à cet évènement, tandis que les autres vivent dans l&amp;#039;insouciance la plus totale. Je fais partie de la première catégorie depuis de nombreuses années et voici ce que j&amp;#039;ai fait pour ne plus avoir à vivre avec la peur de perdre mon travail, mes photos et autres documents importants.
&lt;/p&gt;

&lt;p&gt;
Pour avoir un système de sauvegardes efficaces, il faut respecter la règle &lt;code&gt;3-2-1&lt;/code&gt; :
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;span class=&quot;wrap_hi &quot;&gt;Avoir 3 sauvegardes différentes&lt;/span&gt;,&lt;br/&gt;
des copies dans des répertoires différents ne compte pas. Il faut avoir 3 copies sur des supports différents.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;span class=&quot;wrap_hi &quot;&gt;Avoir 2 types de support différents pour les sauvegardes&lt;/span&gt;,&lt;br/&gt;
utiliser 3 disques dur ne fonctionne pas car les mêmes types de supports sont sujet aux mêmes défaillances.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;span class=&quot;wrap_hi &quot;&gt;Avoir 1 supports à un emplacement différent&lt;/span&gt;,&lt;br/&gt;
car nul n&amp;#039;est à l&amp;#039;abri d&amp;#039;un vol, d&amp;#039;un incendie ou tout autre évènement qui pourrait détruire les données.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
À cela, j&amp;#039;ajouterai les règles suivantes :
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Il faut tester ses sauvegardes régulièrement car des sauvegardes desquelles on ne peut pas récupérer de données sont des sauvegardes inutiles.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Il faut sauvegarder régulièrement pour perdre le moins possible de choses en cas de défaillance.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_info plugin_wrap&quot;&gt;
&lt;p&gt;
Pour l&amp;#039;instant, je ne suis pas encore tout à fait au point. Je n&amp;#039;ai que 2 sauvegardes différentes, sur 1 seul type de support et aucune de mes sauvegardes est à un emplacement différent.
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h5 id=&quot;sauvegarde_des_donnees_locales_sur_un_disque_local&quot;&gt;Sauvegarde des données locales sur un disque local&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
La première étape fut de sauvegarder mes données sur un disque local. C&amp;#039;est un disque physique différent qui ne sert qu&amp;#039;à cela. Il est dans ma machine à côté de mes disques courants. J&amp;#039;utilise &lt;a href=&quot;http://rdiff-backup.nongnu.org/&quot; class=&quot;urlextern&quot; title=&quot;http://rdiff-backup.nongnu.org/&quot; rel=&quot;ugc nofollow&quot;&gt;rdiff-backup&lt;/a&gt; depuis de nombreuses année même s&amp;#039;il n&amp;#039;est plus maintenu depuis 2009. Il donne de bon résultat mais il faudra que je trouve un remplaçant qui soit encore maintenu.
&lt;/p&gt;

&lt;p&gt;
Pour réaliser ma sauvegarde, j&amp;#039;ai écrit un script qui :
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Monte le disque contenant les sauvegardes,&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Supprime les sauvegardes antérieures à 30 jours,&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Cré une nouvelle sauvegarde des répertoires et fichiers listés dans le fichier de configuration,&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Démonte le disque précédemment monté,&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Nettoie le système.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;NAME&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Automatic.Backup&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;BACKUP&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;backup
&lt;span class=&quot;re2&quot;&gt;TEMPFILE&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$NAME&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;-= Mount backup drive =-&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-c&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$BACKUP&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;`&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-eq&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$BACKUP&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sdb1 &lt;span class=&quot;re1&quot;&gt;$BACKUP&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;fi&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;-= Delete old backups =-&amp;quot;&lt;/span&gt;
rdiff-backup &lt;span class=&quot;re5&quot;&gt;--verbosity&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--force&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--remove-older-than&lt;/span&gt; 30D &lt;span class=&quot;re1&quot;&gt;$BACKUP&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;-= Create new backup =-&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home &lt;span class=&quot;re5&quot;&gt;-name&lt;/span&gt; .&lt;span class=&quot;re1&quot;&gt;$NAME&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-exec&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$TEMPFILE&lt;/span&gt; +
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;**&lt;span class=&quot;es2&quot;&gt;$NAME&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$TEMPFILE&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;- **&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$TEMPFILE&lt;/span&gt;
rdiff-backup &lt;span class=&quot;re5&quot;&gt;--verbosity&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--include-globbing-filelist&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$TEMPFILE&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home &lt;span class=&quot;re1&quot;&gt;$BACKUP&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;-= Unmount backup drive =-&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;umount&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$BACKUP&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;rmdir&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$BACKUP&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;-= Clean system =-&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$TEMPFILE&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Le fichier de configuration liste les répertoires et fichiers à sauvegarder. Voici un petit exemple de la syntaxe à utiliser :
&lt;/p&gt;
&lt;pre class=&quot;code ini&quot;&gt;&lt;span class=&quot;co0&quot;&gt;; Fichier simple&lt;/span&gt;
/home/user/file.txt
&lt;span class=&quot;co0&quot;&gt;
; Fichiers avec un motif&lt;/span&gt;
/home/user/**.pdf
&lt;span class=&quot;co0&quot;&gt;
; Répertoire simple&lt;/span&gt;
/home/user/folder
&lt;span class=&quot;co0&quot;&gt;
; Répertoire avec espaces&lt;/span&gt;
/home/user/folder\ with\ spaces&lt;/pre&gt;

&lt;p&gt;
Ce script peut être lancé manuellement mais c&amp;#039;est plus intéressant de le lancer automatiquement pour ne plus avoir à y penser. Il y a quelques années j&amp;#039;avais fait le choix de déclencher la sauvegarde à l&amp;#039;extinction de l&amp;#039;ordinateur, mais lorsque le volume de données à sauvegarder était important, je devais attendre. Maintenant, je le fais au démarrage de manière non-bloquante pour ne pas subir ce léger désagrément. C&amp;#039;est &lt;a href=&quot;https://www.freedesktop.org/wiki/Software/systemd/&quot; class=&quot;urlextern&quot; title=&quot;https://www.freedesktop.org/wiki/Software/systemd/&quot; rel=&quot;ugc nofollow&quot;&gt;systemd&lt;/a&gt; qui s&amp;#039;occupe de gérer le lancement.
&lt;/p&gt;

&lt;p&gt;
J&amp;#039;ai créé le fichier &lt;code&gt;/etc/systemd/system/local.backup.service&lt;/code&gt; avec le contenu suivant :
&lt;/p&gt;
&lt;pre class=&quot;code ini&quot;&gt;&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Unit&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;Description&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;Backup on internal disk&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;Requires&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;home.mount&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;After&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;home.mount&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Service&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;ExecStart&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;/home/alexis/Personnalisation/Scripts/Automatic.Backup.sh&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;Type&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;oneshot&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Install&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;WantedBy&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;graphical.target&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Pour l&amp;#039;enregistrer comme service de démarrage, il suffit de lancer la commande suivante :
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; local.backup&lt;/pre&gt;

&lt;p&gt;
Je peux également également connaître l&amp;#039;état de ma sauvegarde en lançant la commande suivante :
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;systemctl status local.backup&lt;/pre&gt;

&lt;/div&gt;

&lt;h5 id=&quot;sauvegarde_des_donnees_locales_sur_un_disque_externe&quot;&gt;Sauvegarde des données locales sur un disque externe&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
La seconde étape fut de sauvegarder sur un disque externe. Pour cela, j&amp;#039;ai fait quasiment comme pour la sauvegarde sur mon disque interne.
&lt;/p&gt;

&lt;p&gt;
Pour réaliser ma sauvegarde, j&amp;#039;ai écrit un script qui :
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Attend le montage du disque contenant les sauvegardes,&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Supprime les sauvegardes antérieures à 300 jours,&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Cré une nouvelle sauvegarde des répertoires et fichiers listés dans le fichier de configuration,&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Démonte le disque précédemment monté,&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Nettoie le système.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Les actions effectuées sont vraiment similaires, du coup, le script l&amp;#039;est aussi. La différence vient du système d&amp;#039;attente du point de montage.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;NAME&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Automatic.Backup&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;BACKUP&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;/run/media/alexis/7d5a54b8-259e-4473-8a85-9e588ca30453&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;BACKUPDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$BACKUP&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;backup
&lt;span class=&quot;re2&quot;&gt;TEMPFILE&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$NAME&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;.EHDD&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;USER&lt;/span&gt;=alexis
&lt;span class=&quot;re2&quot;&gt;USERID&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;id&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-u&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$USER&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;`&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;BASH&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;which&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;`&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-u&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$USER&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$BASH&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-c&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/&lt;span class=&quot;es2&quot;&gt;$USERID&lt;/span&gt;/bus notify-send -t 10000 -u normal -i /usr/share/icons/Adwaita/32x32/devices/drive-removable-media.png &#039;Backup started&#039; &#039;Location: external drive.&#039;&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;-= Wait until HDD is mounted =-&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-c&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$BACKUP&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;`&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-eq&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt; 1s
&lt;span class=&quot;kw1&quot;&gt;done&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;-= Create backup dir =-&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$BACKUPDIR&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$BACKUPDIR&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;fi&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;-= Delete old backups =-&amp;quot;&lt;/span&gt;
rdiff-backup &lt;span class=&quot;re5&quot;&gt;--verbosity&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--force&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--remove-older-than&lt;/span&gt; 300D &lt;span class=&quot;re1&quot;&gt;$BACKUPDIR&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;-= Create new backup =-&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;find&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home &lt;span class=&quot;re5&quot;&gt;-name&lt;/span&gt; .&lt;span class=&quot;re1&quot;&gt;$NAME&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-exec&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$TEMPFILE&lt;/span&gt; +
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;**&lt;span class=&quot;es2&quot;&gt;$NAME&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$TEMPFILE&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;- **&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$TEMPFILE&lt;/span&gt;
rdiff-backup &lt;span class=&quot;re5&quot;&gt;--verbosity&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--force&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--include-globbing-filelist&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$TEMPFILE&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home &lt;span class=&quot;re1&quot;&gt;$BACKUPDIR&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;-= Clean system =-&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$TEMPFILE&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-u&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$USER&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$BASH&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-c&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/&lt;span class=&quot;es2&quot;&gt;$USERID&lt;/span&gt;/bus notify-send -t 10000 -u normal -i /usr/share/icons/Adwaita/32x32/devices/drive-removable-media.png &#039;Backup done&#039; &#039;Location: external drive.&#039;&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Comme pour le script précédent, je voulais que le déclenchement de la sauvegarde se fasse automatiquement au moment de la connexion du disque. Pour cela, j&amp;#039;ai utilisé systemd de manière semblable à celle utilisée précédemment.
&lt;/p&gt;

&lt;p&gt;
J&amp;#039;ai créé le fichier &lt;code&gt;/etc/systemd/system/ehdd.backup.service&lt;/code&gt; avec le contenu suivant :
&lt;/p&gt;
&lt;pre class=&quot;code ini&quot;&gt;&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Unit&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;Description&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;Backup on external disk&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;Requires&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;run-media-alexis-7d5a54b8\x2d259e\x2d4473\x2d8a85\x2d9e588ca30453.mount&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;After&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;run-media-alexis-7d5a54b8\x2d259e\x2d4473\x2d8a85\x2d9e588ca30453.mount&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Service&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;ExecStart&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;/home/alexis/Personnalisation/Scripts/Automatic.Backup.EHDD.sh&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;Type&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;oneshot&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Install&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;WantedBy&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;graphical.target&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
À ce moment, il ne reste plus qu&amp;#039;à activer le service pour qu&amp;#039;il soit utilisable au démarrage de la machine.
&lt;/p&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_info plugin_wrap&quot;&gt;
&lt;p&gt;
Pour trouver l&amp;#039;identifiant unique d&amp;#039;un disque, il faut lancer la commande suivante :
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;disk&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;by-uuid&lt;/pre&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_info plugin_wrap&quot;&gt;
&lt;p&gt;
Pour encoder un chemin en une chaîne de caractères utilisable dans les fichiers de configuration de systemd, il faut lancer la commande suivante :
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;systemd-escape &lt;span class=&quot;re5&quot;&gt;--path&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;path&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h5 id=&quot;sauvegarde_des_donnees_locales_sur_un_disque_delocalise&quot;&gt;Sauvegarde des données locales sur un disque délocalisé&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.ainw.org/wiki/lib/images/smileys/fixme.svg&quot; class=&quot;icon smiley&quot; alt=&quot;FIXME&quot; /&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;sauvegarde_des_donnees_distantes&quot;&gt;Sauvegarde des données distantes&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
La quatrième étape fut de sauvegarder les données de mes services en ligne (RSS, photos, etc.) sur le disque local.
Pour cela, j&amp;#039;ai fait plusieurs tests peu concluants &lt;sup&gt;&lt;a href=&quot;#fn__1&quot; id=&quot;fnt__1&quot; class=&quot;fn_top&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt;&lt;sup&gt;&lt;a href=&quot;#fn__2&quot; id=&quot;fnt__2&quot; class=&quot;fn_top&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt;&lt;sup&gt;&lt;a href=&quot;#fn__3&quot; id=&quot;fnt__3&quot; class=&quot;fn_top&quot;&gt;3)&lt;/a&gt;&lt;/sup&gt; avant de trouver quelque chose qui fonctionne.
&lt;/p&gt;

&lt;p&gt;
Finalement, j&amp;#039;ai écrit un script qui :
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Sauvegarde les données du cron,&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Lance une sauvegarde des bases de données à distance et qui les compresse,&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Monte le disque distant en local avec SSHFS,&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Synchronise l&amp;#039;ensemble des fichiers montés avec rsync,&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Nettoie le système.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;SSH_CONNECTION&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;user&lt;span class=&quot;sy0&quot;&gt;&amp;gt;@&amp;lt;&lt;/span&gt;server&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;IDENTITY&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;alexis&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;.ssh&lt;span class=&quot;sy0&quot;&gt;/&amp;lt;&lt;/span&gt;server&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;USER_NAME&lt;/span&gt;=backup
&lt;span class=&quot;re2&quot;&gt;MOUNT_POINT&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$USER_NAME&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MYSQL_HOST&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;dbhost&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MYSQL_USER&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;dbuser&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MYSQL_PASSWD&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;dbpassword&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;USER&lt;/span&gt;=alexis
&lt;span class=&quot;re2&quot;&gt;USERID&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;id&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-u&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$USER&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;`&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-u&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$USER&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-c&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/&lt;span class=&quot;es2&quot;&gt;$USERID&lt;/span&gt;/bus notify-send -t 10000 -u normal -i /usr/share/icons/Adwaita/32x32/devices/drive-removable-media.png &#039;Backup started&#039; &#039;Distant to internal drive.&#039;&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Extract crontab&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;ssh&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$IDENTITY&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$SSH_CONNECTION&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;crontab -l&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$USER_NAME&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;crontab
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Dump databases&lt;/span&gt;
dbs&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;db&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
…
dbs&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;n&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;db&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es3&quot;&gt;${dbs[@]}&lt;/span&gt;&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;ssh&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$IDENTITY&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$SSH_CONNECTION&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;mysqldump --skip-comments --disable-keys --user=&lt;span class=&quot;es2&quot;&gt;$MYSQL_USER&lt;/span&gt; --password=&lt;span class=&quot;es2&quot;&gt;$MYSQL_PASSWD&lt;/span&gt; --host &lt;span class=&quot;es2&quot;&gt;$MYSQL_HOST&lt;/span&gt; --databases &lt;span class=&quot;es2&quot;&gt;$i&lt;/span&gt; | gzip&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$USER_NAME&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$i&lt;/span&gt;.dump.sql.gz
&lt;span class=&quot;kw1&quot;&gt;done&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Save files&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MOUNT_POINT&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sshfs&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$SSH_CONNECTION&lt;/span&gt;:www &lt;span class=&quot;re1&quot;&gt;$MOUNT_POINT&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;IdentityFile&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$IDENTITY&lt;/span&gt;
&amp;nbsp;
files&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
…
files&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;n&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es3&quot;&gt;${files[@]}&lt;/span&gt;&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MOUNT_POINT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;; &lt;span class=&quot;kw1&quot;&gt;then&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$USER_NAME&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$i&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;fi&lt;/span&gt;
    rsync &lt;span class=&quot;re5&quot;&gt;-azq&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--delete&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--force&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MOUNT_POINT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$USER_NAME&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;dirname&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;done&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;umount&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MOUNT_POINT&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;rmdir&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MOUNT_POINT&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-u&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$USER&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-c&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/&lt;span class=&quot;es2&quot;&gt;$USERID&lt;/span&gt;/bus notify-send -t 10000 -u normal -i /usr/share/icons/Adwaita/32x32/devices/drive-removable-media.png &#039;Backup done&#039; &#039;Distant to internal drive.&#039;&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Comme pour les autres scripts, j&amp;#039;ai laissé systemd s&amp;#039;occuper du déclenchement du script. J&amp;#039;ai créé le fichier &lt;code&gt;/etc/systemd/system/distant.backup.service&lt;/code&gt; avec le contenu suivant :
&lt;/p&gt;
&lt;pre class=&quot;code ini&quot;&gt;&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Unit&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;Description&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;Backup distant on internal disk&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;Requires&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;home.mount&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;After&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;home.mount&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Service&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;ExecStart&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;/home/alexis/Personnalisation/Scripts/Automatic.Backup.Distant.sh&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;Type&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;oneshot&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Install&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;WantedBy&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;graphical.target&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Cependant, je voulais le lancer un peu en différé par rapport à la séquence de démarrage. J&amp;#039;ai donc créé le fichier &lt;code&gt;/etc/systemd/system/distant.backup.timer&lt;/code&gt; avec le contenu suivant :
&lt;/p&gt;
&lt;pre class=&quot;code ini&quot;&gt;&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Unit&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;Description&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;Run distant backup on boot&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Timer&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;OnBootSec&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;30min&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Install&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;WantedBy&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;timers.target&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
C&amp;#039;est ce dernier qu&amp;#039;il faut activer pour qu&amp;#039;il soit utilisable au démarrage de la machine.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;restauration_de_donnees&quot;&gt;Restauration de données&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
La dernière étape est de vérifier que les sauvegardes sont utilisables. C&amp;#039;est une opération qu&amp;#039;il faut faire régulièrement pour s&amp;#039;assurer de leur bon fonctionnement. Ce n&amp;#039;est pas le jour où on veut récupérer un fichier qu&amp;#039;il faut s&amp;#039;inquiéter de l&amp;#039;intégrité des données sauvegardées.
&lt;/p&gt;

&lt;p&gt;
Avec &lt;code&gt;rdiff-backup&lt;/code&gt;, ces opérations sont faciles à mettre en place. Je vais en détailler quelques-unes pour donner un aperçu de ce qu&amp;#039;il est possible de faire mais la meilleure source d&amp;#039;information restera le &lt;a href=&quot;https://www.ainw.org/wiki/lib/exe/fetch.php?media=informatique:man:rdiff-backup.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;informatique:man:rdiff-backup.pdf (42.5 KB)&quot;&gt;manuel&lt;/a&gt;.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Lister les incréments&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# Liste les incréments par date&lt;/span&gt;
rdiff-backup &lt;span class=&quot;re5&quot;&gt;--list-increments&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;backup&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Liste les incréments par date en affichant leur taille&lt;/span&gt;
rdiff-backup &lt;span class=&quot;re5&quot;&gt;--list-increment-sizes&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;backup&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Lister les fichiers&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# Liste les fichiers présents il y a 3 jours&lt;/span&gt;
rdiff-backup &lt;span class=&quot;re5&quot;&gt;--list-at-time&lt;/span&gt; 3D &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;backup
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Liste les fichiers présents à la date sélectionnée&lt;/span&gt;
rdiff-backup &lt;span class=&quot;re5&quot;&gt;--list-at-time&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Fri Oct 22 21:29:12 2010&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;backup
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Liste les changements effectués depuis 3 jours&lt;/span&gt;
rdiff-backup &lt;span class=&quot;re5&quot;&gt;--list-changed-since&lt;/span&gt; 3D &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;backup
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Liste les changements effectués depuis la date sélectionnée&lt;/span&gt;
rdiff-backup &lt;span class=&quot;re5&quot;&gt;--list-changed-since&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Fri Oct 22 21:29:12 2010&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;backup&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Restaurer des données&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# Restaure le premier incrément antérieur à 3 jours dans le répertoire /tmp/OldBackup&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Le répertoire /tmp/OldBackup ne doit pas exister&lt;/span&gt;
rdiff-backup &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; 3D &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;backup&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;OldBackup
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Restaure le premier incrément antérieur ou égal à la date sélectionnée dans le répertoire /tmp/OldBackup&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Le répertoire /tmp/OldBackup ne doit pas exister&lt;/span&gt;
rdiff-backup &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Fri Oct 22 21:29:12 2010&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;media&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;backup&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;OldBackup&lt;/pre&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_todo plugin_wrap&quot;&gt;
&lt;p&gt;
Liens à étudier :
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://linuxfr.org/news/r-evolutions-dans-le-monde-de-la-sauvegarde-de-donnees&quot; class=&quot;urlextern&quot; title=&quot;http://linuxfr.org/news/r-evolutions-dans-le-monde-de-la-sauvegarde-de-donnees&quot; rel=&quot;ugc nofollow&quot;&gt;(R)évolutions dans le monde de la sauvegarde de données - LinuxFr.org&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.areca-backup.org/&quot; class=&quot;urlextern&quot; title=&quot;http://www.areca-backup.org/&quot; rel=&quot;ugc nofollow&quot;&gt;Areca Backup - Official Website&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.backblaze.com/b2/cloud-storage.html&quot; class=&quot;urlextern&quot; title=&quot;https://www.backblaze.com/b2/cloud-storage.html&quot; rel=&quot;ugc nofollow&quot;&gt;B2 Cloud Storage: The Lowest Priced Online File Storage&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://github.com/bup/bup&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/bup/bup&quot; rel=&quot;ugc nofollow&quot;&gt;bup: It backs things up&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://blog.rom1v.com/2013/08/duplicity-des-backups-incrementaux-chiffres/&quot; class=&quot;urlextern&quot; title=&quot;http://blog.rom1v.com/2013/08/duplicity-des-backups-incrementaux-chiffres/&quot; rel=&quot;ugc nofollow&quot;&gt;Duplicity : des backups incrémentaux chiffrés – ®om&amp;#039;s blog&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://duplicity.nongnu.org/&quot; class=&quot;urlextern&quot; title=&quot;http://duplicity.nongnu.org/&quot; rel=&quot;ugc nofollow&quot;&gt;duplicity: Main&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://acha.ninja/blog/encrypted_backup_shootout/&quot; class=&quot;urlextern&quot; title=&quot;https://acha.ninja/blog/encrypted_backup_shootout/&quot; rel=&quot;ugc nofollow&quot;&gt;Encrypted Backup Shootout&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://zythom.blogspot.fr/2014/12/la-recuperation-de-donnees-faites-la.html&quot; class=&quot;urlextern&quot; title=&quot;http://zythom.blogspot.fr/2014/12/la-recuperation-de-donnees-faites-la.html&quot; rel=&quot;ugc nofollow&quot;&gt;Zythom: La récupération de données, faites la vous-même&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;/div&gt;
&lt;div class=&quot;footnotes&quot;&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__1&quot; id=&quot;fn__1&quot; class=&quot;fn_bot&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; 
&lt;div class=&quot;content&quot;&gt;Copie en ligne dans un dossier puis montage SSHFS du dossier puis rsync → toute la donnée est copiée à chaque fois&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__2&quot; id=&quot;fn__2&quot; class=&quot;fn_bot&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt; 
&lt;div class=&quot;content&quot;&gt;Rsync à travers SSH → refus de connexion après un certain temps&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__3&quot; id=&quot;fn__3&quot; class=&quot;fn_bot&quot;&gt;3)&lt;/a&gt;&lt;/sup&gt; 
&lt;div class=&quot;content&quot;&gt;Mysqldump en local → temps de traitements trop long&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 20 Apr 2025 16:04:08 +0000</pubDate>
        </item>
    </channel>
</rss>
