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 !

 

?Download backup.sh
#!/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…