How to backup automatically with borg on a local harddrive without encryption

Bon, j’ai réglé temporairement le problème en changeant le nom donné aux backups dans le script (auto1 à la place de auto), donc mes backups marchent.
Par contre j’aimerais bien une solution pour nettoyer ce dossier tmp, si quelqu’un sait comment faire. J’ai bien compris qu’il ne fallait pas tout supprimer comme un bourrin…

En fouillant, je suis tombé sur ce post : https://github.com/YunoHost/issues/issues/1308
Du coup, la méthode pour nettoyer des dossiers dans /home/yunohost.backup/archives/tmp, c’est :

sudo yunohost tools shell
from yunohost.backup import BackupMethod
bm = BackupMethod()
bm._recursive_umount('/home/yunohost.backup/tmp/nextcloud-pre-upgrade2')
exit()
sudo rm -Rf /home/yunohost.backup/tmp/nextcloud-pre-upgrade2

Une question : si je mets bm._recursive_umount('/home/yunohost.backup/tmp/*'), est-ce que ça me nettoie tous les dossiers d’un coup ?

Normalement ce problème va être fixé dans la prochaine version (il me semble que c’est déjà en testing)

Pour l’autre question: non l’usage de * n’est pas possible.

Bonjour,

Je suis entrain de suivre ce tuto mais lors du “test”
yunohost backup create --ignore-apps --system conf_ldap -n test --method mylocalborg --debug --verbose

J’ai ce message d’erreur :

265 DEBUG loading actions map namespace ‘yunohost’
313 DEBUG extra parameter classes loaded: [‘comment’, ‘ask’, ‘password’, ‘required’, ‘pattern’]
313 DEBUG initializing base actions map parser for cli
316 DEBUG registering new callback action ‘yunohost.utils.packages.ynh_packages_version’ to [’-v’, ‘–version’]
usage: yunohost
{user,domain,app,backup,monitor,settings,service,firewall,dyndns,tools,hook,log}

[-h] [–no-cache] [–output-as {json,plain,none}] [–debug]
[–quiet] [–timeout ==SUPPRESS==] [–admin-password PASSWORD]
[-v]
yunohost: error: unrecognized arguments: --ignore-apps --verbose

Auriez-vous une idée ?

Ce tuto est assez vieux. Ton problème vient du fait que l’option --ignore-apps n’existe plus, il faut donc corriger les scripts du tuto.

Mais la méthode la plus simple aujourd’hui pour atteindr ele but du tuto ce serait :

  • Installer borg_ynh

  • Installer borgserver_ynh (sur la même machine)

  • Mount the disk with fstab on /home/BORGUSER/backup

Très bien je vais donc essayer cette méthode mais avant, pour faire les choses proprement je voudrais désinstaller ce qui a été fait via ce tuto. Mais via “apt remove borgbackup” la commande m’indique que borgbackup n’est pas installé. Et je ne sais pas s’il faut passer via une commande spécifique vu que l’installation s’est faire via “pip3 install borgbackup”

Pour desinstaller

pip3 uninstall borgbackup
rm -f /etc/yunohost/hooks.d/backup_method/05-mylocalborg
rm -f /etc/cron.daily/yunohost-99-backup

Salut,
J’ai un bug depuis quelques jours sur ma sauvegarde avec borg sur un DD externe :

/etc/cron.daily/yunohost-99-backup:
ls: impossible d'accéder à '/etc/yunohost/hooks.d/backup/': Aucun fichier ou dossier de ce type
umount: /home/yunohost.backup/tmp/auto1_conf/conf/ssowat : cible occupée
       (Dans certains cas, des renseignements sur les processus utilisant
        le périphérique sont accessibles avec lsof(8) ou fuser(1).)
Impossible de nettoyer le dossier temporaire de sauvegarde
umount: /home/yunohost.backup/tmp/auto1_conf/conf/ssowat : cible occupée
       (Dans certains cas, des renseignements sur les processus utilisant
        le périphérique sont accessibles avec lsof(8) ou fuser(1).)
Impossible de nettoyer le dossier temporaire de sauvegarde
umount: /home/yunohost.backup/tmp/auto1_conf/conf/ssowat : cible occupée
       (Dans certains cas, des renseignements sur les processus utilisant
        le périphérique sont accessibles avec lsof(8) ou fuser(1).)
Impossible de nettoyer le dossier temporaire de sauvegarde
umount: /home/yunohost.backup/tmp/auto1_conf/conf/ssowat : cible occupée
       (Dans certains cas, des renseignements sur les processus utilisant
        le périphérique sont accessibles avec lsof(8) ou fuser(1).)
Impossible de nettoyer le dossier temporaire de sauvegarde
Le répertoire de destination n’est pas vide
ls: impossible d'accéder à '/etc/yunohost/hooks.d/backup/': Aucun fichier ou dossier de ce type
Création d’une archive de sauvegarde à partir des fichiers collectés …
Sauvegarde terminée
name: auto1_data
results: 
  apps: 
  system: 
    data_home: Success
    data_mail: Success
size: 23952821556
usage: yunohost
                {user,domain,app,backup,settings,service,firewall,dyndns,tools,hook,log,diagnosis}
                ...
                [-h] [--no-cache] [--output-as {json,plain,none}] [--debug]
                [--quiet] [--timeout ==SUPPRESS==] [--admin-password PASSWORD]
                [-v]
yunohost: error: unrecognized arguments: -b

Il ne backup plus que data, et plus conf ni aucune app.
J’ai tenté la méthode avec tools shell pour nettoyer le dossier /home/yunohost.backup/tmp, mais j’ai une erreur :

sudo yunohost tools shell
Attention : The ldap interface is available in this context
Attention : You don't have IPython installed, consider installing it as it is way better than the standard shell.
Attention : Falling back on the standard shell.
Python 2.7.13 (default, Sep 26 2018, 18:42:22)
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from yunohost.backup import BackupMethod
>>> bm = BackupMethod()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
TypeError: __init__() takes at least 2 arguments (1 given)

Une idée ?

Quelles sont tes versions de Ynh ? Le premier ls qui ne marche pas, c’est p-e signe qu’il manque qqchose dans ton installation…

Ma version : 3.8.4.8.
Il n’y a effectivement pas de dossier backup dans /etc/yunohost/hooks.d, mais j’avais déjà cette alerte quand les backups marchaient.
J’ai l’impression que le problème vient plutôt des umount qui ne marchent pas et qui empêchent de nettoyer le dossier temporaire de sauvegarde. J’avais déjà eu le problème une fois, après une sauvegarde interrompue, mais comme je dis dans mon post, la solution que j’avais utilisée à l’époque ne marche plus.
Ou alors ça peut venir d’un changement dans la commande yunohost backup lors d’une mise à jour ? Voici le log du dernier backup qui a marché (sauf l’app nextcloud à cause d’une “cible occupée”) :

/etc/cron.daily/yunohost-99-backup:
ls: impossible d'accéder à '/etc/yunohost/hooks.d/backup/': Aucun fichier ou dossier de ce type
umount: /home/yunohost.backup/tmp/auto1_conf/conf/ssowat : cible occupée
       (Dans certains cas, des renseignements sur les processus utilisant
        le périphérique sont accessibles avec lsof(8) ou fuser(1).)
Impossible de nettoyer le dossier temporaire de sauvegarde
umount: /home/yunohost.backup/tmp/auto1_conf/conf/ssowat : cible occupée
       (Dans certains cas, des renseignements sur les processus utilisant
        le périphérique sont accessibles avec lsof(8) ou fuser(1).)
Impossible de nettoyer le dossier temporaire de sauvegarde
umount: /home/yunohost.backup/tmp/auto1_conf/conf/ssowat : cible occupée
       (Dans certains cas, des renseignements sur les processus utilisant
        le périphérique sont accessibles avec lsof(8) ou fuser(1).)
Impossible de nettoyer le dossier temporaire de sauvegarde
umount: /home/yunohost.backup/tmp/auto1_conf/conf/ssowat : cible occupée
       (Dans certains cas, des renseignements sur les processus utilisant
        le périphérique sont accessibles avec lsof(8) ou fuser(1).)
Impossible de nettoyer le dossier temporaire de sauvegarde
Le répertoire de destination n'est pas vide
ls: impossible d'accéder à '/etc/yunohost/hooks.d/backup/': Aucun fichier ou dossier de ce type
Création d'une archive de sauvegarde à partir des fichiers collectés …
Sauvegarde terminée
name: auto1_data
results: 
  apps: 
  system: 
    data_home: Success
    data_mail: Success
size: 23801651335
Collecte des fichiers devant être sauvegardés pour l'application etherpad_mypads …
[+++.................] > Loading installation settings...
[###+++..............] > Backing up the main app directory...
[######++............] > Backing up nginx web server configuration...
[########+++++.......] > Backing up the MySQL database...
[#############++.....] > Backing up logrotate configuration...
[###############+....] > Backing up systemd configuration...
[################++..] > Backing up fail2ban configuration...
Création d'une archive de sauvegarde à partir des fichiers collectés …
Sauvegarde terminée
name: auto1_etherpad_mypads
results: 
  apps: 
    etherpad_mypads: Success
  system: 
size: 155419893
Collecte des fichiers devant être sauvegardés pour l'application ihatemoney …
Création d'une archive de sauvegarde à partir des fichiers collectés …
Sauvegarde terminée
name: auto1_ihatemoney
results: 
  apps: 
    ihatemoney: Success
  system: 
size: 85592813
Collecte des fichiers devant être sauvegardés pour l'application lufi …
Loading installation settings...
Backing up the main app directory...
Backing up nginx web server configuration...
Backing up the PostgreSQL database...
Backing up logrotate configuration...
Backing up systemd configuration...
Backing up cron configuration...
Backup script completed for lufi. (YunoHost will then actually copy those files to the archive).
Création d'une archive de sauvegarde à partir des fichiers collectés …
Sauvegarde terminée
name: auto1_lufi
results: 
  apps: 
    lufi: Success
  system: 
size: 3174059834
Collecte des fichiers devant être sauvegardés pour l'application mailman …
Création d'une archive de sauvegarde à partir des fichiers collectés …
Sauvegarde terminée
name: auto1_mailman
results: 
  apps: 
    mailman: Success
  system: 
size: 995229827
Collecte des fichiers devant être sauvegardés pour l'application mattermost …
Création d'une archive de sauvegarde à partir des fichiers collectés …
Sauvegarde terminée
name: auto1_mattermost
results: 
  apps: 
    mattermost: Success
  system: 
size: 646104429
Collecte des fichiers devant être sauvegardés pour l'application mumbleserver …
Création d'une archive de sauvegarde à partir des fichiers collectés …
Sauvegarde terminée
name: auto1_mumbleserver
results: 
  apps: 
    mumbleserver: Success
  system: 
size: 228292
umount: /home/yunohost.backup/tmp/auto1_nextcloud/apps/nextcloud/backup/var/www/nextcloud : cible occupée
       (Dans certains cas, des renseignements sur les processus utilisant
        le périphérique sont accessibles avec lsof(8) ou fuser(1).)
Impossible de nettoyer le dossier temporaire de sauvegarde
umount: /home/yunohost.backup/tmp/auto1_nextcloud/apps/nextcloud/backup/var/www/nextcloud : cible occupée
       (Dans certains cas, des renseignements sur les processus utilisant
        le périphérique sont accessibles avec lsof(8) ou fuser(1).)
Impossible de nettoyer le dossier temporaire de sauvegarde
Le répertoire de destination n'est pas vide
Collecte des fichiers devant être sauvegardés pour l'application onlyoffice …
Loading installation settings...
Backing up nginx web server configuration...
Backing up the PostgreSQL database...
Backing up the configuration...
Création d'une archive de sauvegarde à partir des fichiers collectés …
Sauvegarde terminée
name: auto1_onlyoffice
results: 
  apps: 
    onlyoffice: Success
  system: 
size: 143779
Collecte des fichiers devant être sauvegardés pour l'application opensondage …
[+++.................] > Loading installation settings...
[###+++..............] > Backing up the main app directory...
[######++++..........] > Backing up nginx web server configuration...
[##########+++.......] > Backing up php-fpm configuration...
[#############+++....] > Backing up the MySQL database...
Création d'une archive de sauvegarde à partir des fichiers collectés …
Sauvegarde terminée
name: auto1_opensondage
results: 
  apps: 
    opensondage: Success
  system: 
size: 13469443
Collecte des fichiers devant être sauvegardés pour l'application peertube …
Managing script failure...
Loading installation settings...
Stopping a systemd service...
Backing up the main app directory...
Backing up nginx web server configuration...
Backing up the PostgreSQL database...
Backing up hook configuration...
Backing up logrotate configuration...
Backing up systemd configuration...
Starting a systemd service...
Please wait, the service peertube is starting..............................
The service peertube has correctly started.
Création d'une archive de sauvegarde à partir des fichiers collectés …
Sauvegarde terminée
name: auto1_peertube
results: 
  apps: 
    peertube: Success
  system: 
size: 1616212393
Collecte des fichiers devant être sauvegardés pour l'application rainloop …
[++..................] > Loading installation settings...
[##+++...............] > Backing up the main app directory...
[#####++.............] > Backing up nginx web server configuration...
[#######+++..........] > Backing up php-fpm configuration...
[##########++........] > Backing up the MySQL database...
[############+++.....] > Backing up fail2ban configuration...
[###############++...] > Backing up logrotate configuration...
Création d'une archive de sauvegarde à partir des fichiers collectés …
Sauvegarde terminée
name: auto1_rainloop
results: 
  apps: 
    rainloop: Success
  system: 
size: 38979857
Collecte des fichiers devant être sauvegardés pour l'application restic …
Création d'une archive de sauvegarde à partir des fichiers collectés …
Sauvegarde terminée
name: auto1_restic
results: 
  apps: 
    restic: Success
  system: 
size: 106718
Collecte des fichiers devant être sauvegardés pour l'application wordpress …
[++++................] > Loading installation settings...
[####++++............] > Backing up the main app directory...
[########++..........] > Backing up nginx web server configuration...
[##########++........] > Backing up php-fpm configuration...
[############++++....] > Backing up the MySQL database...
[################++..] > Backing up fail2ban configuration...
Création d'une archive de sauvegarde à partir des fichiers collectés …
Sauvegarde terminée
name: auto1_wordpress
results: 
  apps: 
    wordpress: Success
  system: 
size: 104456073
Collecte des fichiers devant être sauvegardés pour l'application wordpress__2 …
[++++................] > Loading installation settings...
[####++++............] > Backing up the main app directory...
[########++..........] > Backing up nginx web server configuration...
[##########++........] > Backing up php-fpm configuration...
[############++++....] > Backing up the MySQL database...
[################++..] > Backing up fail2ban configuration...
Création d'une archive de sauvegarde à partir des fichiers collectés …
Sauvegarde terminée
name: auto1_wordpress__2
results: 
  apps: 
    wordpress__2: Success
  system: 
size: 120326233
Collecte des fichiers devant être sauvegardés pour l'application zerobin …
[++++................] > Loading installation settings...
[####++++............] > Backing up the main app directory...
[########++++........] > Backing up nginx web server configuration...
[############++++....] > Backing up php-fpm configuration...
Création d'une archive de sauvegarde à partir des fichiers collectés …
Sauvegarde terminée
name: auto1_zerobin
results: 
  apps: 
    zerobin: Success
  system: 
size: 3207618

Et voici le log du backup suivant, qui n’a pas marché (sauf pour data home et mail) :

/etc/cron.daily/yunohost-99-backup:
ls: impossible d'accéder à '/etc/yunohost/hooks.d/backup/': Aucun fichier ou dossier de ce type
umount: /home/yunohost.backup/tmp/auto1_conf/conf/ssowat : cible occupée
       (Dans certains cas, des renseignements sur les processus utilisant
        le périphérique sont accessibles avec lsof(8) ou fuser(1).)
Impossible de nettoyer le dossier temporaire de sauvegarde
umount: /home/yunohost.backup/tmp/auto1_conf/conf/ssowat : cible occupée
       (Dans certains cas, des renseignements sur les processus utilisant
        le périphérique sont accessibles avec lsof(8) ou fuser(1).)
Impossible de nettoyer le dossier temporaire de sauvegarde
umount: /home/yunohost.backup/tmp/auto1_conf/conf/ssowat : cible occupée
       (Dans certains cas, des renseignements sur les processus utilisant
        le périphérique sont accessibles avec lsof(8) ou fuser(1).)
Impossible de nettoyer le dossier temporaire de sauvegarde
umount: /home/yunohost.backup/tmp/auto1_conf/conf/ssowat : cible occupée
       (Dans certains cas, des renseignements sur les processus utilisant
        le périphérique sont accessibles avec lsof(8) ou fuser(1).)
Impossible de nettoyer le dossier temporaire de sauvegarde
Le répertoire de destination n’est pas vide
ls: impossible d'accéder à '/etc/yunohost/hooks.d/backup/': Aucun fichier ou dossier de ce type
Création d’une archive de sauvegarde à partir des fichiers collectés …
Sauvegarde terminée
name: auto1_data
results: 
  apps: 
  system: 
    data_home: Success
    data_mail: Success
size: 23812152439
usage: yunohost
                {user,domain,app,backup,settings,service,firewall,dyndns,tools,hook,log,diagnosis}
                ...
                [-h] [--no-cache] [--output-as {json,plain,none}] [--debug]
                [--quiet] [--timeout ==SUPPRESS==] [--admin-password PASSWORD]
                [-v]
yunohost: error: unrecognized arguments: -b

Le yunohost: error: unrecognized arguments: -b fait penser que la commande de backup n’a plus la bonne syntaxe, non ?

Une nouvelle version de borg_ynh est proposée en production pour corriger ça.

Ok, je n’utilise pas l’app borg pour faire mon backup local (ça me parait un peu surdimensionné d’installer 2 fois l’app pour que le serveur envoie ses backups en ssh à lui-même… ou alors quelque chose m’échappe ?).
Par contre j’ai modifié la ligne dans mon script comme sur ta PR et ça marche :
- for app in $(yunohost app list --installed -b | grep id: | cut -d: -f2); do
+ for app in $(ls /etc/yunohost/apps/*/scripts/backup | cut -d / -f 5); do

Merci !

1 Like

Bug bizarre sur mon serveur : en regardant les mails envoyés à chaque backup, je me suis rendu compte qu’ils étaient en échec depuis longtemps.
Et en fait, borg n’était tout simplement plus installé sur mon serveur je crois :

admin@truc:~$ sudo borg --help
Traceback (most recent call last):
  File "/usr/local/bin/borg", line 7, in <module>
    from borg.archiver import main
ModuleNotFoundError: No module named 'borg'

Je l’ai installé, et là j’ai pu voir que mes derniers backups datent du 24 août, qui est le jour où j’ai migré sur buster. Je ne vois pas pourquoi la migration aurait fait sauter borg ? D’autant que dans le dossier /var/log/yunohost/categories/operation je ne trouve aucune mention de borg.

Au pif, je dirai que dans ta phrase de passe il y a un espace ou un $
si c’est le cas, ça a été soulevé très récemment ici : Passphrase problem with Borg Backup App for YunoHost
(avec dedans des liens vers les tickets ouverts)

Si c’est un espace, ça se corrige, pour le $ je ne sais pas si ça se contourne.

Tu parles dans le cas de backup chiffrés ? Dans mon cas ils ne sont pas chiffrés.
Pour moi la simple ré-installation de borg a réglé le problème, mes backups automatiques sont repartis normalement.

Il faut mettre à jour l’app après le passage à buster.

Je n’ai pas utilisé l’app, j’avais mis en place les backups à la main (probablement avant la création de l’app).

Bonjour !

Un étrange petit soucis depuis quelques jours :

args:
  apps: null
  description: null
  dry_run: false
  methods:
  - borg__2_app
  name: auto_conf
  output_directory: null
  system:
  - conf_custom
  - conf_ldap
  - conf_ynh_settings
  - conf_ynh_certs
  - conf_manually_modified_files
ended_at: 2021-10-23 23:00:03.876782
error: You should pick an empty output directory
interface: cli
operation: backup_create
parent: null
related_to: []
started_at: 2021-10-23 23:00:03.754508
success: false
yunohost_version: 4.2.8.3

============

2021-10-24 00:00:03,310: DEBUG - temporary directory for backup '/home/yunohost.backup/tmp/auto_conf' already exists... attempting to clean it
2021-10-24 00:00:03,394: WARNING - Could not clean up the temporary backup folder
2021-10-24 00:00:03,447: WARNING - Could not clean up the temporary backup folder
2021-10-24 00:00:03,814: DEBUG - temporary directory for backup '/home/yunohost.backup/tmp/auto_conf' already exists... attempting to clean it
2021-10-24 00:00:03,859: WARNING - Could not clean up the temporary backup folder
2021-10-24 00:00:03,875: WARNING - Could not clean up the temporary backup folder

Sur le Yunohost :

root@box:~# rm /home/yunohost.backup/tmp/* -rf
rm: cannot remove '/home/yunohost.backup/tmp/auto_conf/conf/ynh/dkim/mydomain.com.mail.key': Read-only file system
............

Merci pour le coup de main !

Bonjour @charly,

As-tu fais des changements récemment? Je pense par exemple au déplacement des backup sur un autre disque. Si oui, pour info yunohost.backup/tmp doit rester sur le disque de Yunohost, tu peux par contre faire un lien symbolique du dossier archives pour déporter son contenu ailleurs.
Je ne sais pas si ça a un rapport avec ton problème, c’est déjà pour s’assurer que tu ne sois pas dans une configuration particulière.

Bonjour !

A part ce qui est évoqué dans ce fil (et merci encore pour le coup de main), non, rien de spécial.

Sinon, bizarrement, si j’essaie de sauvegarder la conf en passant par l’interface d’adminisration web > ça fonctionne !

Merci d’avance pour votre aide

EDIT : J’ai éteint le serveur, l’ai branché sur mon ordi, ai effacé le répertoire et c’est reparti.