Salut,

Je vous propose ici un script permettant de faire des backups.
Assez basique dans sa conception, il s'avère efficace et flexible.

Pourquoi ré-inventer la roue ?
En fait, je ne trouvais pas ce que je cherchais dans les outils/scripts existants. Un script comme backup-manager est très bien par exemple, mais exporter des variables et utiliser BDD+interface web est un peu trop "bourrin" pour mon utilisation : Je ne veux pas d'un truc qui demande de l'installation et de la configuration en plus.
- UN script
- UN fichier de conf
Et c'est marre. Rien que des commandes basiques.

J'ai donc pris mon Atom, mes pages man et suis partit comme à la vieille école 😃

Ce qui est géré:
- La simple copie.
- L'archivage sans compression.
- L'archivage avec compression :
- faible (gzip)
- moyenne (bzip2)
- forte (lzma)
- Les backups complets et incrémentaux (gestion du calendrier pour déterminer le type).
- Les exclusions.
- L'arrêt/redémarrage des services pour les backups à froid.
- L'éxécution d'un script tiers pendant la période "froide".
- La rétention des archives et leur nettoyage.
- La réplication des backups sur un site distant (rsync).
- Bonus, il vous envoir un message telegram quand le backup est terminé.

Ce qui manque:
- Dump des bases de données (mon serveur n'a pas de traffic suffisant pour craindre une corruption des fichiers à 3h du mat', donc j'avoue, je ne l'ai pas intégré ! Et comme je fait un full à froid par semaine, au pire je ne perd pas grand chose. Néanmoins, si la demande est forte, je pourrais l'intégrer.)
- Autres méthodes de réplication (ftp... A voir en fonction de la demande.).
- Vous me dites 🙂

Fonctionnement:
1. Récupérez le script et ses dépendances*.
git clone https://github.com/zerpex/scripts.git scripts
cd scripts/backup
2. Copiez le fichier backup_sample.conf en l'appellant backup_hostname.conf
3. Editez-le pour le paramétrer à votre guise.
4. Deux méthodes pour le démarrer :
4.1 à la main:
./backup.sh
Rajoutez l'option "full" à la fin pour forcer un backup complet hors planification prévue.
4.2 en crontab:
crontab -e
Pour l'éxécuter tous les jours à 3h du matin, rajoutez la ligne:
0 3 * * * /chemin/vers/backup.sh

Notes:
Pour des raisons pratiques, j'ai pas mal de scripts qui trainent dans mon git. En clonant mon répo, vous les récupérez tous.
Si seul le script de backup vous intéresse, alors il faut garder les fichiers suivants :
- Le dossier "backup" 😃
- functions.sh
- vars.sh

Tout le reste peut-être viré sans risque. Evidemment, si vous voulez recevoir des messages via telegram, il faut aussi conserver le dossier "telegram" (Et aller lire le README dedans...) 😃
Comme d'hab', n'hésitez pas à forker/modifier/PR si ça vous dit et que vous avez des idées 😉
z.

Répondre…