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
Comment créer un script Bash de sauvegarde manuelle Borg pour Yunohost ?
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.

Dans la boucle, je vais le traitement suivant:
-
Je crée d’abord la sauvegarde avec yunohost en utilisant
yunohost backup createet la méthodeborg_app. Le fait
que ça fonctionne me confirme que mon installation de Borg est correcte ! -
J’envoie ensuite un appel POST à un webhook mon serveur n8n. Ceci démarre un script qui se charge de m’envoyer un
courriel pour me dire que la sauvegarde pour une application donnée a été complétée. Comme ça mon serveur ne
communique pas directement par SMTP et je n’ai pas les enjeux de délivrabilité.
#!/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
- C’est tout ! Un peu rudimentaire, mais ça marche !
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 !