Astroport.ONE/_DOCKER/Readme.md

94 lines
3.5 KiB
Markdown

Pour automatiser la création quotidienne de snapshots de votre répertoire Docker et les sauvegarder sur IPFS, vous pouvez suivre les étapes suivantes. Cette procédure utilise un script Bash et un cron job pour automatiser le processus.
### Étapes pour Automatiser les Snapshots et Sauvegardes sur IPFS
1. **Installer les Outils Nécessaires**:
- Assurez-vous que `btrfs-progs` et `ipfs` sont installés sur votre système.
- Installez IPFS en suivant les instructions sur le site officiel ou via votre gestionnaire de paquets.
2. **Configurer IPFS**:
- Initialisez IPFS si ce n'est pas déjà fait :
```bash
ipfs init
```
- Démarrez le démon IPFS :
```bash
ipfs daemon &
```
3. **Créer un Script Bash pour les Snapshots et Sauvegardes**:
- Créez un script Bash, par exemple `/usr/local/bin/docker_snapshot_backup.sh` :
```bash
sudo nano /usr/local/bin/docker_snapshot_backup.sh
```
- Ajoutez le contenu suivant au script :
```bash
#!/bin/bash
# Variables
SNAPSHOT_DIR="/var/lib/docker"
BACKUP_DIR="/var/lib/docker_snapshots"
TIMESTAMP=$(date +"%Y%m%d%H%M%S")
SNAPSHOT_NAME="snapshot_$TIMESTAMP"
IPFS_LOG="/var/log/ipfs_backup.log"
# Créer un snapshot en lecture seule
sudo btrfs subvolume snapshot -r $SNAPSHOT_DIR $BACKUP_DIR/$SNAPSHOT_NAME
# Ajouter le snapshot à IPFS
IPFS_HASH=$(ipfs add -r -q $BACKUP_DIR/$SNAPSHOT_NAME | tail -n1)
# Enregistrer le hash IPFS avec un timestamp
echo "$TIMESTAMP $IPFS_HASH" >> $IPFS_LOG
# Optionnel: Nettoyer les anciens snapshots (conserver les 7 derniers)
cd $BACKUP_DIR
ls -t | sed -e '1,7d' | xargs -d '\n' rm -rf
```
- Rendez le script exécutable :
```bash
sudo chmod +x /usr/local/bin/docker_snapshot_backup.sh
```
4. **Configurer un Cron Job pour Exécuter le Script Quotidiennement**:
- Éditez la crontab pour ajouter une tâche planifiée :
```bash
sudo crontab -e
```
- Ajoutez la ligne suivante pour exécuter le script tous les jours à minuit :
```bash
0 0 * * * /usr/local/bin/docker_snapshot_backup.sh
```
### Explication du Script
- **Variables**:
- `SNAPSHOT_DIR` : Répertoire Docker à snapshotter.
- `BACKUP_DIR` : Répertoire où les snapshots seront stockés.
- `TIMESTAMP` : Horodatage pour nommer les snapshots.
- `IPFS_LOG` : Fichier de log pour enregistrer les hashes IPFS.
- **Création du Snapshot**:
- La commande `btrfs subvolume snapshot -r` crée un snapshot en lecture seule du répertoire Docker.
- **Ajout à IPFS**:
- La commande `ipfs add -r -q` ajoute le snapshot à IPFS et récupère le hash.
- **Enregistrement du Hash**:
- Le hash IPFS est enregistré avec un timestamp dans un fichier de log.
- **Nettoyage des Anciens Snapshots**:
- Les anciens snapshots sont supprimés, ne conservant que les 7 plus récents.
### Conclusion
En suivant cette procédure, vous pouvez automatiser la création quotidienne de snapshots de votre répertoire Docker et les sauvegarder sur IPFS. Le script Bash et le cron job assurent que le processus est exécuté régulièrement sans intervention manuelle, garantissant ainsi la redondance et la sécurité de vos données[1][2][4][5].
Citations:
[1] https://docs.ipfs.tech/case-studies/snapshot/
[2] https://docs.ipfs.tech/how-to/take-snapshot/
[3] https://www.youtube.com/watch?v=EvRtHOxYPnA
[4] https://coinacademy.fr/academie/ipfs-crypto/
[5] https://blog.ineat-conseil.fr/2022/09/ipfs-le-protocole-qui-decentralise-vos-fichiers/