**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
74 lines
3.0 KiB
Markdown
74 lines
3.0 KiB
Markdown
# 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`
|
||
|
||
1. Exécute `save-signet-datadir-backup.sh` → crée `backups/signet-datadir-YYYYMMDD-HHMMSS.tar.gz`
|
||
2. Exécute `export-mining-wallet.sh` → crée `backups/mining-wallet-export-YYYYMMDD-HHMMSS.json`
|
||
3. Clone ou pull le dépôt https://git.4nkweb.com/4nk/backup dans `$HOME/.4nk-backup-git` (ou `$BACKUP_GIT_WORKSPACE`)
|
||
4. Copie les derniers fichiers dans `signet-datadir/` et `mining-wallet/`
|
||
5. Garde seulement 2 versions de signet-datadir et 2 de mining-wallet (supprime les plus anciennes)
|
||
6. 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-instance` en 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 quotidien
|
||
- `features/backup-to-git-daily-cron.md` : cette documentation
|
||
|
||
## Modalités de déploiement
|
||
|
||
1. Créer le dépôt `4nk/backup` sur https://git.4nkweb.com/4nk/backup si nécessaire.
|
||
2. Configurer l’accès git (credential helper, clé, token) pour push sans interaction.
|
||
3. Rendre le script exécutable : `chmod +x data/backup-to-git-cron.sh`
|
||
4. Ajouter une entrée cron quotidienne (ex. 5h00, après restart-services si applicable) :
|
||
```text
|
||
0 5 * * * /home/ncantu/Bureau/code/bitcoin/data/backup-to-git-cron.sh
|
||
```
|
||
5. 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.log` pour 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.
|