Petit script de sauvegarde d’un serveur Web avec Shell restreint
Hop, c’est cadeau, voici un script tout simple pour sauvegarder automatiquement et périodiquement son site web :
- sauvegarde périodique (les fichiers sont conservés 15 jours)
- sauvegarde des bases de données (variables à changer)
- sauvegarde des fichiers du site (chemins à changer)
Ce n’est qu’un squelette, et vous êtes libres d’y ajouter votre grain de sel, n’hésitez pas à l’améliorer et à le partager ici !
#!/bin/sh #définitions des variables : datedujour=$(date +%Y%m%d) fichierdujour=$(date +%Y%m%d)-SqlBackup.tar.gz datequinze=$(date -d '15 days ago' +%Y%m%d) # On afficher les infos date du jour et autre pour le log. echo "Date du jour : $datedujour" echo "Fichier du jour : $fichierdujour" echo "Date il y a 15 jours : $datequinze" #On supprime toutes les sauvegardes existantes dans le dossier d'exécution rm -f *.sql # La commande dump : mysqldump -h localhost -u LOGIN_BDD -pPASSWORD NOM_BDD > BDD.sql #on archive tous les backups dans un zip a la date du jour # tar czf $fichierdujour *.sql #on sauvegarde les fichiers du repertoire web tar -cvzf www.tgz /public_html/ #on cree le répertoire du jour et y place les backups mkdir ~/backup/auto/$datedujour mv *.sql ~/backup/auto/$datedujour/ mv www* ~/backup/auto/$datedujour/ #on supprime le répertoire d il y a 15 jours s'il existe if test -d ~/backup/auto/$datequinze; then echo 'suppression des anciens backups vieux de 15 jours ou plus' rm -rf ~/backup/auto/$datequinze fi #on supprime le tar.gz du jour rm -f $fichierdujour |
Puis exécuter :
crontab -e |
Pour y ajouter la cron suivante :
0 0 * * * /root/scripts/backup.sh
Je peux maintenant dormir tranquille, cron s’occupe de tout…