**Motivations:** - Export Signet and mining wallet backups to git with only 2 versions kept - Document and add backup/restore scripts for signet and mining wallet **Correctifs:** - Backup-to-git uses SSH URL for passwordless cron; copy timestamped files only; prune to 2 versions; remove *-latest from backup repo **Evolutions:** - data/backup-to-git-cron.sh: daily export to git.4nkweb.com/4nk/backup - save-signet-datadir-backup.sh, restore-signet-from-backup.sh, export-mining-wallet.sh, import-mining-wallet.sh - features/backup-to-git-daily-cron.md, docs/MAINTENANCE.md backup section - .gitignore: data/backup-to-git.log **Pages affectées:** - .gitignore, data/backup-to-git-cron.sh, docs/MAINTENANCE.md, features/backup-to-git-daily-cron.md - save-signet-datadir-backup.sh, restore-signet-from-backup.sh, export-mining-wallet.sh, import-mining-wallet.sh - Plus autres fichiers modifiés ou non suivis déjà présents dans le working tree
3.0 KiB
3.0 KiB
Cron quotidien : export backups Signet et mining wallet vers git
Auteur : Équipe 4NK
Date : 2026-02-04
Objectif
Exporter quotidiennement les sauvegardes du Signet (chaîne complète) et du wallet de minage vers le dépôt git https://git.4nkweb.com/4nk/backup, en ne conservant que 2 versions de chaque type.
Impacts
- Sauvegardes Signet et mining wallet disponibles sur git pour récupération à distance.
- Rotation automatique : au plus 2 versions de la chaîne complète (signet-datadir) et 2 versions du wallet.
- Log :
data/backup-to-git.log.
Solution implémentée
Script data/backup-to-git-cron.sh
- Exécute
save-signet-datadir-backup.sh→ créebackups/signet-datadir-YYYYMMDD-HHMMSS.tar.gz - Exécute
export-mining-wallet.sh→ créebackups/mining-wallet-export-YYYYMMDD-HHMMSS.json - Clone ou pull le dépôt https://git.4nkweb.com/4nk/backup dans
$HOME/.4nk-backup-git(ou$BACKUP_GIT_WORKSPACE) - Copie les derniers fichiers dans
signet-datadir/etmining-wallet/ - Garde seulement 2 versions de signet-datadir et 2 de mining-wallet (supprime les plus anciennes)
- Commit et push vers le dépôt
Structure dans le dépôt backup
4nk/backup/
├── signet-datadir/
│ ├── signet-datadir-YYYYMMDD-HHMMSS.tar.gz (max 2)
│ └── signet-datadir-YYYYMMDD-HHMMSS.tar.gz
└── mining-wallet/
├── mining-wallet-export-YYYYMMDD-HHMMSS.json (max 2)
└── mining-wallet-export-YYYYMMDD-HHMMSS.json
Prérequis
- Docker (conteneur
bitcoin-signet-instanceen cours d’exécution pour les scripts de backup) - Git configuré avec accès push sans mot de passe (clés SSH vers git@git.4nkweb.com:4nk/backup.git)
- Dépôt backup créé au préalable sur https://git.4nkweb.com/4nk/backup (peut être vide)
- Sécurité : le dépôt backup contient des clés privées (mining wallet). Le rendre privé sur git.4nkweb.com.
Modifications
Fichiers créés :
data/backup-to-git-cron.sh: script d’export quotidienfeatures/backup-to-git-daily-cron.md: cette documentation
Modalités de déploiement
- Créer le dépôt
4nk/backupsur https://git.4nkweb.com/4nk/backup si nécessaire. - Configurer l’accès git (credential helper, clé, token) pour push sans interaction.
- Rendre le script exécutable :
chmod +x data/backup-to-git-cron.sh - Ajouter une entrée cron quotidienne (ex. 5h00, après restart-services si applicable) :
0 5 * * * /home/ncantu/Bureau/code/bitcoin/data/backup-to-git-cron.sh - Tester manuellement :
./data/backup-to-git-cron.sh
Variables d'environnement (optionnel)
BACKUP_GIT_WORKSPACE: chemin du clone local du dépôt backup (défaut :$HOME/.4nk-backup-git)
Modalités d’analyse
- Consulter
data/backup-to-git.logpour les exécutions et erreurs. - Vérifier le dépôt https://git.4nkweb.com/4nk/backup pour les commits.
- En cas d’erreur
git clone: créer le dépôt sur git.4nkweb.com. - En cas d’erreur
git push: vérifier credential helper / accès réseau.