Script a mettre dans la Cron
#!/bin/bash
#
## on se place dans le répertoire ou l'on veut sauvegarder les bases
#
## Répertoire ou se trouve les sauvegarde ##
cd /home/monsite/SqlDatabase/
# Il est possible d'effectuer des sauvegarde de plusieurs base en utilisant le nom des base a la suite
# for i in mon_site mon_forum mon_blog; do
# Mais attention, dans ce cas, l'utilisateur et le mot de passe doivent être les même sur les différents base
for i in ma_base_de_donnée; do
## Sauvegarde des bases de donnees en fichiers .sql
mysqldump -uUSER -pPASSWORD $i > ${i}_`date +%D | sed 's;/;-;g'`.sql
## Compression des exports en tar.bz2 (le meilleur taux de compression)
tar jcf ${i}_`date +%D | sed 's;/;-;g'`.sql.tar.bz2 ${i}_`date +%D | sed 's;/;-;g'`.sql
## Suppression des exports non compresses
rm ${i}_`date +%D | sed 's;/;-;g'`.sql
echo "Sauvegarde de SQL ${i}_`date +%Y-%m-%d` effectué" | mail -s "Sauvegarde de SQL"
[email protected]
done
Puis j'utilise un autre script pour limiter la place sur mon espace, je garde que les X versions précédentes.
#!/bin/bash
#
## Supprime les sauvegardes vieilles de plus de 5 jours
#
find /home/monsite/SqlDatabase/ -type f -mtime +6 | xargs -r rm
Tout cela mis dans la CRON et hop, les sauvegarde sont automatique.