3-2-1 : Sauvegardes

Noyé dans un océan de doutes

3-2-1 : Sauvegardes

Sommaire

Objectifs

  • Avoir une sauvegarde locale sur le poste de travail. (1)
  • Avoir une sauvegarde physiquement séparée sur un tout autre support de stockage. (2)
  • Avoir une sauvegarde sécurisée sur un service extérieur à votre habitation : service cloud. (3)

Si réaliser un sauvegarde local sur son poste de travail (1) est généralement aisé et ne pose aucun soucis, il n’en va pas forcément de même dès lors que l’on souhaite un peu rassembler tout ce petit monde dans un même dossier accessible qui servira de « dossier de base » afin d’être plus facilement synchronisé vers vers d’autres supports (2)+(3).

Du coup notre objectif consiste bien à :

  • Assurer le stockage vers 2 emplacements supplémentaire dont 1 dans le cloud.
  • Obtenir un retour par mail (optionnel).

Stratégie

  1. Monter un dossier réseau depuis Proxmox (datacenter) accessible au serveur LXC comme à HAOS.
  2. Monter un serveur LXC rudimentaire (Debian) qui s’occupera d’héberger les services utiles à l’ensemble des opérations.
  3. Utiliser l’outil rclone pour Linux qui fait le lien pour synchroniser des dossiers avec un service cloud.
  4. Utiliser l’outil msmtp comme serveur SMTP afin d’envoyer des mails
  5. Programmer un outil maison (rclone_homelab) afin coordonner les instructions pour tout ces outils
  6. Avoir un rendu esthétique et synthétique de la synchronisation.
  7. Prévenir s’il y a un soucis dans processus. Chaque jour doit avoir à synchroniser des fichiers…

Préparatifs

Proxmox

Étape 1 – Création du dossier partagé [Sous Proxmox]

Mettez en place un dossier partagé depuis Proxmox qui recevra (notement) les sauvegardes automatiques de ce dernier mais aussi les futures sauvegardes de HAOS.

  1. Depuis votre nœud Proxmox, création physique du dossier :

Shell - Linux

    mkdir -p /mnt/share/backup
   
            
                    
        
  1. Inscription/enregistrement/déclaration du montage :

Shell - Linux

    echo "dir: homelab_backups
     path /mnt/share/backups
     content backup,vztmpl,iso
     shared 0" >> /etc/pve/storage.cfg
   
            
                    
        

Explications :

  • dir: homelab_backups : Définit le type de stockage comme un répertoire et lui donne l’ID homelab_backups.
  • path /mnt/share/backups : Spécifie le chemin physique vers le répertoire.
  • content backup,vztmpl,iso : Définit le type de contenu que ce stockage peut contenir : sauvegardes, modèles de conteneurs et images ISO. Vous pourriez ne laisser que « backup ».
  • shared 0 : Indique que le stockage n’est pas partagé sur le réseau.
  • >> /etc/pve/storage.cfg : sortie vers le fichier de configuration.
  1. Vérifiez la configuration

Après avoir ajouté ces lignes, vous pouvez vérifier que le fichier ait été correctement mis à jour en utilisant :

Shell - Linux

    cat /etc/pve/storage.cfg
   
            
                    
        
  1. Recharger le service Proxmox :

Pour que les modifications prennent effet, rechargez le service Proxmox :

Shell - Linux

    systemctl restart pve-cluster
systemctl restart pvedaemon

   
            
                    
        
  1. Vérifier dans l’interface web :

Après avoir redémarré les services, connectez-vous à l’interface web de Proxmox et allez dans « Centre de données » puis dans « Stockage ». Vous devriez voir votre nouveau stockage homelab_backups listé.

Stockages depuis le centre de données

Étape 2 – Conteneur LXC dédié (105)

Pour éviter de « polluer » l’instance Proxmox (le nœud) en installant des outils et en bidouillant quelques fichiers au risque de faire planter totalement votre installation (croyez moi j’ai dû formater 2 fois !), on va héberger et « isoler » nos outils via un conteneur LXC contenant simplement Debian.
Ainsi, on évite de trop dénaturer le nœud Proxmox, on peut faire des sauvegarde avant chaque « chantier » et en cas de pépin ce n’est pas toute votre installation qui sera à jeter ! Vous aurez des sauvegardes et au pire, juste un conteneur à remonter.

Une précision tout de même sur la sécurité, car le conteneur LXC devra être élevé avec un rang « privilégié » ce qui n’est pas sans risque sur la stabilité du nœud en cas de piratage/bidouillage profond.

Le conteneur aura un ID de 105 et une adresse IP correspondante 192.168.0.105

  1. Installation d’un conteneur LXC Debian :

Rien de bien sorcier, on va s’appuyer sur la puissance de déploiement d’un script prêt à l’emploi.

Shell - Linux

    bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/debian.sh)"   
            
                    
        

Si vous préférez une autre méthode plus manuel, plus… et bah juste faites-le !

  1. Démarrez le conteneur si ce n’est pas déjà fait.

Étape 3 – Sauvegarde de vérification

Oui, déjà maintenant je vous recommande tout de suite de prendre l’habitude d’utiliser des sauvegardes car elles ne prennent vraiment pas longtemps à faire et à réinstaller et ça vous éviter de vous arrachez les cheveux.

Ici ça va nous permettre de vérifier que tout fonctionne.

  1. Faites une sauvegarde vers le dossier fraichement créé pour l’occasion :

Vous trouverez dans le menu « Sauvegarde » une zone (voir capture) permettant de sélectionner la destination de la sauvegarde. Vous devriez y trouver homelab_backups.

Sauvegardes – Destination

  1. Votre sauvegarde apparait dans le dossier.
    Vous pouvez la consulter avec un logiciel tel que WinSCP.
    La sauvegarde se trouve dans un sous dossier nommé /dump.
    3 fichiers composent une sauvegarde :
    – .log (Ce sont juste les logs)
    – .tar.zst (C’est LE fichier compressé)
    – .notes (C’est le commentaire qui accompagne, bien pratique !)

WinSCP – Sauvegardes

A tout moment vous pouvez réaliser une sauvegarde. Encore une fois c’est simple, rapide et sécurisant !

Étape 4 – Conteneur Privilégié

  1. Depuis le nœud Proxmox, vérification du status du conteneur 105 :

Shell - Linux

    pct config 105 | grep unprivileged
   
            
                    
        

Le retour sera certainement unprivileged: 0
S’il est à 1, ne rien faire et passer l’étape suivante.

  1. Pour modifier ce rôle, édition du fichier :

Shell - Linux

    nano /etc/pve/lxc/105.conf
   
            
                    
        

Trouver la ligne correspondante et modifier la valeur de 0 à 1.

  1. Redémarrer le conteneur :

Shell - Linux

    pct reboot 105
   
            
                    
        

Étape 5 – Création du dossier partagé (bis)

Ici on va s’attarder sur le sous dossier qui servira plus tard pour HAOS.

  1. Depuis le nœud Proxmox (pas dans le conteneur) :

Shell - Linux

    mkdir -p /mnt/share/backups/haos
   
            
                    
        
  1. Vérifier les permissions :

Shell - Linux

    ls -ld /mnt/share/backups /mnt/share/backups/haos
   
            
                    
        
  1. Vous devriez obtenir quelque chose de similaire à :
drwxr-xr-x 3 root root 4096 ... /mnt/share/backups
drwxr-xr-x 2 root root 4096 ... /mnt/share/backups/haos

Étape 6 – Monter le dossier pour le conteneur 105

Pour que le conteneur LXC 105 puisse accéder au dossier « backups » précédemment créé, il faut lui donner le chemin. C’est ce que l’on appel « monter un dossier ».

  1. Depuis le nœud Proxmox, éditez la conf du conteneur 105 :

Shell - Linux

    nano /etc/pve/lxc/105.conf
   
            
                    
        
  1. Ajouter cette ligne à la fin :

Shell - Linux

    mp0: /mnt/share/backups,mp=/srv/backups

   
            
                    
        

Explications :

  • mp0 « Montage Point #0 » Si vous aviez déjà d’autres points de montage, mettez simplement le numéro qui suit.
  • /mnt/share/backups est le chemin du partage.
  • mp=/srv/backups indique que ce partage (point de montage) doit être monté dans…
  1. Redémarrer le conteneur :

Shell - Linux

    pct reboot 105
   
            
                    
        
  1. Depuis le conteneur LXC, vérifier :

Shell - Linux

    ls /srv/backups
ls /srv/backups/haos
   
            
                    
        

Vous devriez voir vos dossiers monté correctement.

Étape 7 – Installation Samba

L’outil (protocole) Samba va gérer le partage SMB/CIFS, nécessaire dans le cadre d’un partage de dossiers sur votre réseau. C’est pratique pour accéder à des dossiers directement depuis Windows Explorer ou aussi pour l’utilisation plus tard de la Freebox Ultra. En interne (Proxmox) ca va nous permettre d’héberger les fichiers de HAOS directement dans le bon dossier.

Proxmox, au niveau du « Centre de données », ne permet pas que l’on puisse accéder à ses entrailles nativement. Donc on ne peut pas accéder au moindre fichier comme ça aussi facilement.
C’est la raison pour laquelle nous devons en passer par Samba qui sera hébergé sur le conteneur LXC (Debian) afin d’isoler au mieux toute l’infrastructure. C’est via ce dernier que l’on va transférer les fichiers provenant de HAOS (via le protocole SMB) vers le « Centre de données ».

HAOS ne permet le stockage réseau que via SMB/CIFS ou NFS. Le plus simple étant SMB (Samba). Le sauvegardes transiteront par Debian pour être stockées réellement au niveau du centre de données donc à la base de Proxmox à coté des sauvegardes régulières de ce dernier.

Le serveur Debian (conteneur LXC ID:105) sert juste de passerelle et d’hébergeur pour les outils.

Installation de Samba dans le conteneur
  1. Depuis le nœud Proxmox  se connecter au conteneur 105 :

Shell - Linux

    pct enter 105
   
            
                    
        
  1. Installer l’outil (après une petite MAJ) :

Shell - Linux

    apt install -y samba

   
            
                    
        
  1. Vérification de l’état :

Shell - Linux

    systemctl status smbd
   
            
                    
        

Vous devriez trouver une ligne verte avec la mention Active: active (running)

Configuration de Samba (2 partages)

Il est impératif et nécessaire de configurer 2 partages bien que celui de HAOS soit un sous-dossier direct du premier (Proxmox_backups). Pourquoi ? Parce que HAOS ne gère pas les sous-dossier ! Il lui faut directement un nom de dossier final et direct à atteindre. Donc nous sommes obligé de configurer le dossier parent (1) et le dossier enfant (2).

1 – /mnt/share/backups             < va servir pour les sauvegardes de Proxmox puisque ce dernier va disposer de son propre sous dossier /dump
2 –/mnt/share/backups/haos     < va servir pour les sauvegardes de HAOS.

  1. Depuis le conteneur LXC, sauvegarde préalable du fichier de configuration :

Shell - Linux

    cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
   
            
                    
        
  1. Édition du fichier :

Shell - Linux

    nano /etc/samba/smb.conf
   
            
                    
        
  1. Ajoute à la fin du fichier les deux partages suivants :

Shell - Linux

    [backups]
   path = /srv/backups
   browseable = yes
   writable = yes
   guest ok = no
   valid users = pve01
   create mask = 0664
   directory mask = 0775

[haos]
   path = /srv/backups/haos
   browseable = yes
   writable = yes
   guest ok = no
   valid users = pve01
   create mask = 0664
   directory mask = 0775
   
            
                    
        
Redémarrer Samba et vérifier
  1. Toujours depuis le conteneur LXC :

Shell - Linux

    systemctl restart smbd
systemctl status smbd --no-pager
   
            
                    
        

Vérifier qu’il n’y ait pas d’erreur.

Ajouter un nouvel utilisateur
  • Depuis le conteneur, il faut commencer par le déclarer auprès du système :

Shell - Linux

    adduser pve01   
            
                    
        

Il vous sera demandé de définir un mot de passe que l’on souhaite identique au nom user, à savoir pve01.

Malheureusement, Debian va le rejetter. A la question Try again? [y/N] faites N.
Compléter le reste des information par… rien, laissez vide.

  • Ensuite, on peut l’inclure dans le configuration de Samba :

Shell - Linux

    smbpasswd -a pve01   
            
                    
        

Vous serrez invité à définir son mot de passe. Ici nous allons définir ce mot de passe identique à l’user, soit : pve01.

Automatiser les permissions
  1. Dans le conteneur :

Shell - Linux

    chown -R pve01:pve01 /srv/backups
chmod -R 775 /srv/backups

   
            
                    
        
Tester depuis Windows
  1. Ouvrez l’explorateur de fichiers et entrez dans la barre d’adresse :

Shell - Linux

    \\192.168.0.105
   
            
                    
        

La première connexion est un peu longue.
Windows va vous demander le couple identifiant + mot de passe que nous avons défini chacun à pve01.

Vous devriez voir les deux partages :

  • backups
  • haos

Testez l’écriture en créant un fichier texte.
Vous pouvez aussi tester la lecture en copier la copie de sauvegarde que nous avons faite à l’étape 3.

Étape 8 – Installer Git

Pour la suite, nous allons avoir besoin d’utiliser la fonction git qui n’est pas installée par défaut.
Cette fonction permettra de récupérer des dépôts distant depuis Github, de faire des mises à jour des scripts ainsi téléchargés etc.

  • Vérifiez si git n’est pas déjà installé :

Shell - Linux

    git --version

   
            
                    
        

Si rien ne s’affiche ou que vous recevez une erreur c’est qu’il faut installer le paquet git.

  • Installer git :

Shell - Linux

    apt install git -y
   
            
                    
        

Proxmox – Sauvegardes

Maintenant que nous avons un dossier dédié aux sauvegardes, identifié et partagé, nous allons nous ne servir pour y loger les sauvegardes que nous allons configurer.

  • Centre de données > Sauvegarde > Ajouter

Proxmox – Ajouter des sauvegardes

  • Programmez selon vos propres règles. L’essentiel étant que le cycle des sauvegardes automatique soit terminé avant de lancer la synchronisation.

Proxmox – Mes sauvegardes

HAOS – Sauvegardes

Je ne fais que des sauvegardes « légères » pour gagner en temps et en place car le reste est moins critique et cas de gros coup dur, une sauvegarde complète de la Machine Virtuelle est réalisée par Proxmox chez moi tous les dimanche matin. Pas plus pour éviter de saturer les espaces de stockage.

Étape 1 – Configuration dossier réseau HAOS

  1. Dans Home Assistant → Paramètres → Système → Stockage → Ajouter un stockage réseau

HAOS – Ajouter un stockage réseau

Ne pas oublier le couple Identifiant + Mot de passe tout les 2 valent pve01.

  1. Ajouter ce nouvel emplacement dans options des sauvegardes.
    Home Assistant → Paramètres → Système → Sauvegardes → Configuration et historique

HAOS – Emplacements de stockage

Étape 2 – Faites une sauvegarde

  1. Faites une sauvegarde pour vérifier qu’il n’y a pas d’erreur et que le processus va jusqu’à son terme.
  2. Vous récupérez la sauvegarde (tels que configuré ci-dessus) à la fois :
    1. Localement dans HAOS, /backup
    2. Sur le réseau via SMB à l’adresse \\192.168.0.105\backups\haos
    3. Via SFTP à l’adresse /mnt/share/backups/haos

Outil : rclone

L’interface avec le service cloud

Nous allons utiliser cet outil, véritable couteau Suisse de la gestion de synchronisation des fichiers avec Linux. Sont gros intérêt ici c’est qu’il permet de connecter facilement un disque local (réseau) à un service de cloud. Il possède des configuration pour 63 services !!

Dans mon cas, je vais utiliser mon compte Microsoft Onedrive mais vous pourriez appliquer la méthode pour Google etc.

Étape 1 – Pré-requis

Accès root

  • Depuis le noeud Proxmox, connectez-vous au conteneur en root :

Shell - Linux

    pct enter 105

   
            
                    
        
  • Depuis le conteneur LXC 105, créer un dossier temporaire de travail :

Shell - Linux

    mkdir -p /mnt/tmp_rclone
   
            
                    
        

Étape 2 – Installation de rclone

Installer les dépendances

Shell - Linux

    apt install -y curl unzip
   
            
                    
        

Télécharger le script d’installation officiel

Shell - Linux

    curl https://rclone.org/install.sh | bash
   
            
                    
        

Vérification de l’installation

Shell - Linux

    rclone version
   
            
                    
        

Vous devriez voir une sortie du type :

rclone v1.xx.x
- os/type: linux
- os/arch: amd64
- go/version: go1.xx
- ...

Étape 3 – Configuration initiale de rclone

Créer le répertoire de configuration

Shell - Linux

    mkdir -p /root/.config/rclone
   
            
                    
        

(Ce répertoire est utilisé par défaut par rclone pour stocker la config dans /root/.config/rclone/rclone.conf)

Installation parallèle

Une installation de l’outil rclone en parallèle du LXC est nécessaire car lors du processus de dialogue entre l’outil et le service cloud (Microsoft OneDrive) l’utilisation d’un navigateur web est obligatoire.
Mon conteneur LXC 105 étant dépourvu de moyen graphique, nous allons utiliser rclone pour Windows.

L’idée c’est d’obtenir un token via Windows afin de la transmettre à notre instance dans le conteneur LXC.

Installation de rclone (Windows)

Pour installer l’outil rclone sur Windows, suivez cet article :

> Tutoriel vidéo de référence

Youtube.

Lancer l’assistant interactif de configuration (Linux / PowerShell)

Shell - Linux

    rclone config
   
            
                    
        

Vous verrez des options comme :

Shell - Linux

    n) New remote
s) Set configuration password
q) Quit config
   
            
                    
        

Ajouter un remote

Choisir n pour « new remote », donnez-lui un nom (ex : onedrive_machin, gdrive_truc, dropbox_bidule, etc.), puis choisir le type de service.

Vous pouvez dès maintenant en configurer qu’un seul (OneDrive par exemple), puis le système vous permettra d’en ajouter d’autres ultérieurement, très simplement.

  • Ensuite, répondez aux questions suivantes :
  1. N -> New remote
  2. onedrive_<un_nom> -> New remote name
  3. 38 -> Microsoft OneDrive
  4. <vide> -> client_id
  5. <vide> -> client_secret
  6. 1 -> Microsoft Cloud Global (global)
  7. <vide> -> tenant
  8. N -> Advanced config
Linux
  1. N -> Use web browser

Vous allez poursuivre sur Windows jusqu’à obtention du token à transmettre ici.

Windows
  1. Y -> Use web browser
  2. Une nouvelle fenêtre dans votre navigateur internet doit s’ouvrir où Microsoft OneDrive vous invite à autoriser l’outil rclone à accéder à votre compte. Il faut accépter.

Microsoft OneDrive – Accès

  1. ne page laconique blanche vous informe de la bonne prise en compte.

Microsoft OneDrive – Succès

  1. De retour sur la fenêtre de prompt, le script nous demande quel type de connexion allons nous établir.
    Répondre 1.
  2. Le script nous propose une liste de… propositions (?)
    J’ai répondu par défaut avec le choix 1.
  3. Found drive « root » of type « personal »
    Le script nous informe avoir trouvé la racine de notre compte OneDrive et nous donne le lien cliquable pour vérifier si c’est bon.
    Dans l’affirmative, répondre Y.
  4. Le script affiche le token ainsi que diverses informations et nous demande si nous sommes toujours d’accord pour les inscrire en lien avec notre compte.
    COPIEZ BIEN CE TOKEN !!! Tout ce qu’il y a entre les crochets. (surlignez-clic droit)
    Répondre Y.
  5. Enfin, le script revient à son « menu » et vous pouvez ainsi quitter avec la touche Q.

La configuration est ainsi enregistré sur votre Windows. Vous pouvez la laisser ou la supprimer en rappeler la commande rclone config > delete.

Retour sur Linux

Vous avez copié le token à l’étape 15 (Windows). Collez-le dans la fenêtre qui l’attend, puis, suivez les même étapes que pour Windows afin d’enregistrer la configuration dans le conteneur LXC.
Le token est une longue suite de caractère en incluant les crochets.

Étape 4 – Emplacement du fichier de config

Vérifier l’existence du fichier

Shell - Linux

    cat /root/.config/rclone/rclone.conf
   
            
                    
        

Vous devriez voir une structure du type :

Shell - Linux

    [onedrive]
type = onedrive
token = {...}
drive_id = ...
drive_type = ...
   
            
                    
        

Étape 5 – Ajouter d’autres services (plus tard)

  • Vous pourrez par la suite (plus tard) toujours relancer la commande rclone config et ajouter d’autres services (ngdrive, dropbox, etc.).
    Chaque service sera ajouté comme un nouveau bloc [remote] dans le fichier rclone.conf.

Étape 6 – Commandes de vérification

Lister les remotes configurés :

Shell - Linux

    rclone listremotes
   
            
                    
        

Exemple :

Shell - Linux

    onedrive:
gdrive:

   
            
                    
        

 Tester la connexion à un remote (exemple pour OneDrive)

Shell - Linux

    rclone lsd onedrive<un_nom>:
   
            
                    
        

Cela liste les dossiers à la racine de votre OneDrive.

Outil : msmtp

Notification par email

Pour être averti par email, que ce soit en cas de problème lors de copie des fichier vers votre cloud ou tout simplement pour conserver un œil sur l’exécution de la tâche cron, voici comment procéder.
Le script rclone_homelab est déjà pré-paramétré pour fonctionner avec autre application msmtp.

msmtp n’est autre qu’un service d’envoi de mail par SMTP. Il permet d’enregistrer plusieurs profiles.
Nous allons en configurer qu’un seul.

  • Dans le conteneur LXC :

Shell - Linux

    apt install msmtp msmtp-mta -y
   
            
                    
        

A la question si on souhaite installer AppArmor j’ai répondu « Non ». Si je rencontre des problème on avisera.

  • On va créer le fichier de configuration du service msmtp

Shell - Linux

    nano /etc/msmtprc
   
            
                    
        
  • On va le configurer afin que le serveur mail par défaut soit une adresse gmail.

Shell - Linux

    defaults
auth           on
tls            on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile        /var/log/msmtp.log

account        gmail_spambiengentil
host           smtp.gmail.com
port           587
from           spambiengentil at gmail.com
user           spambiengentil at gmail.com
password       wqjjnjexsxsrzmka

account default : gmail_spambiengentil   
            
                    
        

Shell - Linux

    defaults
auth           on
tls            on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile        /var/log/msmtp.log

account        gmail1
host           smtp.gmail.com
port           587
from           ma_super_adresse_mail_Gmail
user           ma_super_adresse_mail_Gmail
password       ton-mot-de-passe-ou-app-password

account default : gmail1
   
            
                    
        

💡 Il vous faudra un mot de passe d’application (sans les espaces) avec un compte Gmail disposant du 2FA.

Plusieurs comptes peuvent être définis mais un seul aura la qualité du « default ».

  • Protéger le fichier.

Shell - Linux

    chmod 600 /etc/msmtprc   
            
                    
        
  • Tester le configuration :

Shell - Linux

    echo "Test email" | msmtp <ma_super_adresse_at_mail.com>
   
            
                    
        

Outil : rclone_homelab

Script maison, coordinateur

Le script pour rclone (rclone_homelab) va être le fichier exécutable qui va effectuer/coordonner les actions. C’est l’élément clé et le plus complexe.

Il peut-être exécuté manuellement ou automatiquement via une tâche cron.
Ce script est le pivot qui va gérer vos jobs, lancer rclone avec les options qu’il faut ainsi que la notification par email.

Chaque outil étant indépendant, il est nécessaire de les avoir configurés AVANT d’exécuter rclone_homelab.

Toutes les instructions relatives à ce script se trouvent sur la page Github dédiée au projet.

Outil : Cron tab

Exécution automatique

Pour automatiser une exécution ou une tâche, nous utiliseront l’utilitaire Cron. Très simple à mettre en œuvre. Ce la tâche qui sera répétée selon un planning établi.

  • Édite la crontab root dans le conteneur LXC :

Shell - Linux

    crontab -e
   
            
                    
        
  • Choisir l’option 1.
  • Ajoutez ceci pour une exécution journalière à 03h30 :

Shell - Linux

    MAILTO=""

0 4 * * * /bin/bash /opt/rclone_homelab/rclone_sync_main.sh --auto --mailto=quelleheureestilsvp at gmail.com; --dry-run >> /var/log/rclone_cron.log 2>&1   
            
                    
        

Vérification du log généré par cron :

Shell - Linux

    tail -n 50 /var/log/syslog | grep CRON   
            
                    
        

Shell - Linux

    tail -f /var/log/rclone_cron.log
   
            
                    
        

Shell - Linux

    30 3 * * * /opt/rclone_homelab/rclone_sync_main.sh --auto --mailto=<ma_super_adresse at email.com> /var/log/rclone_sync_cron_log.txt 2>&1   
            
                    
        
  • Fermer, enregistrer, valider.

Pour information, chaque astérisque représente une unité de temps, dans l’ordre suivant : 

    • Minute (0 – 59)
    • Heure (0 – 23)
    • Jour du mois (1 – 31)
    • Mois (1 – 12)
    • Jour de la semaine (0 – 7, où 0 et 7 représentent dimanche)

J’ai rajouté des options « communes » afin que aillez un exemple complet. Encore une fois, lisez la documentation fournie par le script rclone_homelab.

Un fichier journal (log) est aussi créé via /var/log/rclone_sync_cron_log.txt 2>&1 afin de journaliser l’exécution de la tâche Cron.
Pour consulter le log, utiliser la commande grep CRON /var/log/syslog

Freebox Ultra

Bien, voilà un point assez délicat car si la Freebox Ultra est présentée comme un « NAS » avec un disque dur, ce n’est en réalité qu’un pastiche !
Au mieux c’est un disque dur réseau aux fonctions limitées, au pire c’est… un disque dur de stockage sur un réseau aux fonctions limitées ^^

Étape 1 – Préparatifs

Coté Freebox

Activer le partage de fichiers

Assurez-vous que le partage de fichiers est bien activé coté Freebox.

  • Freebox OS > Paramètres de la Freebox > Mode avancé > Partage Windows.
  • Il est toujours mieux d’utiliser un couple Utilisateur / Mode de passe.

Freebox OS – Partage de fichiers

Préparer un dossier de stockage

Ce dossier sera un miroir ce qui veut dire qu’il sera comme un reflet. Donc il y a un risque de suppression. Aussi, ne mélangez pas ce dossier avec des sous-dossiers et/ou contenu autres que ceux qui font l’objet de la sauvegarde.

  • Freebox OS >Explorateur de fichiers > « Votre_disque_dur » > « Votre_chemin/vers/le_dossier »
  • Repérez le nom depuis la barre d’adresse du style ici : /Freebox_2To/Homelab_backups

Freebox OS – Arborescence

Coté Debian LXC

✍️ Toutes les commandes sont exécutées depuis le terminal Shell (console) à la racine root@debian

  • S’assurer que le paquet cifs-utils est installé :

Shell - Linux

    dpkg -l | grep cifs-utils
   
            
                    
        

Si rien ne vous est retourné, il faut installer le paquet via :

Shell - Linux

    apt install cifs-utils -y
   
            
                    
        

Etape 2 : Configurer un nouveau remote rclone

C’est là que l’on mesure l’importance d’avoir un outil tel que rclone qui permet de configurer plusieurs remotes indépendamment.

  • Nous allons ici en ajouter un nouveau via l’outil de configuration inclus dans rclone :

Shell - Linux

    rclone config
   
            
                    
        

Étapes par étapes :

  1. N > New remote
  2. Nom :  Ma_Freebox_Ultra
  3. Storage : 49 > SMB / CIFS (smb)
  4. host : 192.168.0.254
  5. user : <votre_user_smb>
  6. port : 445
  7. Password : y
  8. password : <votre_password_smb>
  9. confirm : <votre_password_smb>
  10. domain : <laisser_vide_par_défaut>
  11. spn : <laisser_vide_par_défaut>
  12. use_kerberos : <laisser_vide_par_défaut>
  13. advanced config : n
  14. keep : y
  15. fin : q

Là, votre remote porte le nom de Ma_Freebox_Ultra

Shell - Linux

    [Ma_Freebox_Ultra]
type = smb
host = 192.168.0.254
user = freebox
pass = aLGRku-eLgMtt8bAow7WVWpTOq2DoOU
port = 445   
            
                    
        

Etape 3 : Inclure le job

Maintenant que le remote est prêt, on va inscrire poursuivre de configurer notre job (liste des tâches) en précisant notement les dossiers <source> et <distant>.

  • Ajouter un nouveau job à la suite de notre liste :

Shell - Linux

    nano /opt/rclone_homelab/rclone_sync_jobs.txt
   
            
                    
        

Ajouter le job comme tel (en suivant mon exemple) :

Shell - Linux

    /srv/backups|Ma_Freebox_Ultra:/Freebox_2To/Homelab/Backups   
            
                    
        

Toujours selon le modèle : <source>|<remote>:<destination>

Enregistrez, quittez.

Bilan

  • Nous avons vu comment créer un dossier partagé sous Proxmox accessible entre autre à :
    • Conteneur privilégié (LXC) sous Debian
    • HAOS (VM)
  • Installer et configurer rclone pour :
    • Service cloud (Microsoft OneDrive)
    • Service d’envoi d’email
    • Script rclone_homelab pour la gestion global
    • Tâche cron pour la répétition du script à heure fixe
    • Ajouter un remote à rclone pour sauvegarder le dossier partagé de Proxmox vers un second support : « NAS » Freebox Ultra.

rclone récupère donc les dossiers/fichiers issues des sauvegardes de Proxmox et HAOS pour les envoyer vers le cloud + Serveur Freebox Ultra, tâche répétée à heure fixe tous les jours avec l’envoi d’un rapport par email.

Aides

  • Commande pour éditer le fichier de configuration de rclone :

Shell - Linux

    nano ~/.config/rclone/rclone.conf
   
            
                    
        
  • Commande pour tester un remote : (toujours terminer avec le symbole « : »)

Shell - Linux

    rclone lsd Ma_Freebox_Ultra:
   
            
                    
        

Ou :

Shell - Linux

    rclone tree Ma_Freebox_Ultra:

   
            
                    
        
  • En cas d’erreurs suite à des installation d’outils :

Shell - Linux

    apt-get remove --purge man-db

   
            
                    
        

Tags: , , , , , ,

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *