#!/bin/bash # Chemin imposé : dans le contexte d'exécution de backup/restore, `_common.sh` n'est # pas dans le répertoire courant. source ../settings/scripts/_common.sh source /usr/share/yunohost/helpers #================================================= # INSTANTANÉ COHÉRENT DE LA BASE #================================================= ynh_print_info "Capture d'une copie cohérente de la base SQLite..." # Voir `_common.sh` pour le détail : la base est en WAL, un `cp` du seul fichier # `.db` sauvegarderait une base tronquée. `.backup` produit un fichier unique et # cohérent sans arrêter le service. # # Le service continue de tourner pendant la sauvegarde. C'est un choix assumé : # l'API de sauvegarde en ligne de SQLite garantit la cohérence du fichier produit, et # l'alternative — couper le service à chaque sauvegarde nocturne — coûterait une # indisponibilité pour un gain nul. mabibli_instantane_base "$data_dir" #================================================= # DÉCLARATION DES CHEMINS À SAUVEGARDER #================================================= ynh_backup "$install_dir" # Emporte l'instantané cohérent. Les `mabibli.db`, `-wal` et `-shm` vivants s'y # trouvent aussi : la restauration les ignore au profit de l'instantané. # # À noter : le cœur de YunoHost saute `data_dir` lors de la sauvegarde de sécurité # qui précède une mise à jour (`BACKUP_CORE_ONLY`). Ce n'est pas gênant, une mise à # jour ne touchant pas au répertoire de données. ynh_backup "$data_dir" ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" ynh_backup "/etc/systemd/system/$app.service" #================================================= # FIN DU SCRIPT #================================================= ynh_print_info "Sauvegarde de $app préparée. (YunoHost copie maintenant ces fichiers dans l'archive.)"