Backup de fichiers et d'une base de données MySQL

2009-12-24

Le petit script du matin de ma première journée de vacances, en bash (outch, j'ai jamais écris une ligne de bash), pour backuper les fichiers de mon blog ainsi que la base MySQL. Je vous le partage, si ça peut vous être utile, alors c'est tant mieux !
#!/bin/bash

# À éditer - définition des variables
directory="/repertoire/du/backup"
sitedirectory="/repertoire/du/site"
dbhost="localhost"
dbport="21"
dbusername="utilisateur"
dbpassword="motdepasse"
dbname="mabase"

date="$(date +"%d-%m-%Y")"
file="$directory/db-$dbname-$date.gz"

# Backup de la base de données
mysqldump --add-drop-database --opt --lock-all-tables -u $dbusername -p$dbpassword -h $dbhost -P $dbport $dbname | gzip > $file

# Backup des fichiers du blog
tar -cvf $directory/www-$date.gz $sitedirectory
Je ne pense pas qu'il y ait besoin de vous expliquer quoi que ce soit, il est plutôt simple, nous faisons un dump de la base dans le répertoire choisi puis ensuite nous archivons les fichiers. Pour donner les droits d'exécution sur le fichier puis l'exécuter :
chmod +x fichier-backup
./fichier-backup
Nous pouvons également ajouter une "crontab" afin que le script s'exécute tous les jours (pensez à vider de temps en temps, j'ai pas geré ça dans le script ;)) :
crontab -e
puis ajoutez la ligne suivante :
30 23 * * * /repertoire/du/backup/./fichier-backup
Edit : Attention au caractère à la ligne 16 qui est en fait un >.

Comments