Potion Bottle Icon Manuel d'alchimie du code Potion Bottle Icon

Script de sauvegarde manuelle Borg pour Yunohost

- 423 mots - Temps de lecture estimé: 2 minutes

Offre de formation

Potion Bottle IconHéberger ton entreprise ou ton OBNL avec YunohostPotion Bottle Icon

Arrête de payer par utilisateur·ice pour des outils qui analysent tes données. Expérimente l'autohébergement sur un vrai serveur avec Yunohost et ses centaines d'applications libres.

Héberge tes données au Québec

Dans cet article, je te présente un script de sauvegarde manuelle Borg pour Yunohost. Sur un de mes serveurs, l’instance de Borg Backup crashe constamment lors de la sauvegarde automatisée, pour une raison que je n’ai pas réussi à diagnostiquer.

J’ai donc écris un script bash qui me permet de faire la sauvegarde de toutes mes applications manuellement. Il remplace le script configuré par défaut lors de l’installation de Borg. Je tenais à le partager ici pour la communauté.

🌘 Le script


Sun Face IconComment créer un script Bash de sauvegarde manuelle Borg pour Yunohost ?Sun Face Icon


Ce script Bash contourne les problèmes d’automatisation de Borg Backup sur Yunohost en lançant manuellement une sauvegarde par application installée grâce à une boucle sur yunohost app list. Après chaque sauvegarde, il envoie une notification via un webhook n8n, ce qui évite d’exposer directement un serveur SMTP.

Ce script effectue une boucle sur la liste de toutes les applications installées avec
/usr/bin/yunohost app list --json. Pour chacune, j’utilise l’outil de manipulation de fichiers json jq pour extraire seulement le nom interne des applications. Ce qui me donne une liste de noms.

Flux de traitement du script de sauvegarde manuel Borg sur Yunohost

Dans la boucle, je vais le traitement suivant:

#!/bin/bash
# Sauvegarde Borg Manuelle
# /root/borg_manual_backup.sh

export n8n_url="https://adresse.de.n8n.sur.mon.serveur" export n8n_webhook_path="une clé secrète ici"

for app in $(/usr/bin/yunohost app list --json | jq '.apps | .[] | .id' | tr -d '"') do
  echo "=== Sauvegarde de $app démarrée ==="
  /usr/bin/yunohost backup create -n "auto_$app" --method borg_app --apps "$app" &> /var/log/backup_log.txt
  echo "=== Sauvegarde de $app terminée ==="
  /usr/bin/curl -XPOST "https://${n8n_url}/webhook/${n8n_webhook_path}/borg-backupnc-complet/${app}" done

Ce script est ensuite exécuté par l’utilitaire de tâches planifiées cron à chaque jour avec cette entrée:

0 0 * * * /bin/bash /root/borg_manual_backup.sh

Pour éditer le fichier de configuration de cron, j’utilise crontab -e en tant que root.

Bien que le système par défaut pour mettre des tâches en automatisation sur Yunohost soit les timers de systemd, cron est toujours disponible.

J’espère que cette technique de sauvegarde manuelle Borg pour Yunohost te sera utile !

🌘 Articles connexes

Offre de service

Crescent Moon IconAuto-hébergement tout-inclus sans GAFAM — 3600 $Crescent Moon Icon

Libère-toi des frais par utilisateur·ice qui explosent. Héberge tes données au Québec avec des logiciels libres et facilite ta conformité à la loi 25.

Héberge tes données au Québec
Abonne-toi au fil RSS pour ne rien manquer.

Étiquettes