anchorage_layer_simple/features/backup-to-git-daily-cron.md
ncantu 937646cc45 Daily backup to git cron, backup/restore scripts, docs
**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
2026-02-04 03:07:57 +01:00

74 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 dexé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 dexport 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 laccè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 danalyse
- 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 derreur `git clone` : créer le dépôt sur git.4nkweb.com.
- En cas derreur `git push` : vérifier credential helper / accès réseau.