Programmer ses backups Dotclear grâce à un script bash et CRON
Par NiKo le dimanche 22 janvier 2006, 12:16 - Dotclear - Lien permanent
Si vous avez la chance de posséder un accès SSH à votre hébergement Dotclear (ou autre), voici un petit script bash permettant de sauvegarder l'intégralité des fichiers de votre blog ainsi que la base de données dans une seule et unique archive.
Le script envoie même le fichier d'export de la base de données compressée par email à l'adresse de votre choix. À l'heure des comptes GMail de 2Go, le poids et la quantité des pièces jointes ne devraient pas poser de problèmes 
Associé à une tâche CRON, ce système permet de vous assurer de toujours posséder une copie de sauvegarde de votre blog.
Prérequis : Pour utiliser la fonction d'envoi par mail de la sauvegarde SQL compressée, Mutt, le client de messagerie en ligne de commande doit être installé sur le serveur [1].
Voici le script (que vous pourrez adapter à votre convenance et à vos besoins) :
#!/bin/bash HOME="<repertoire_personnel>" # exemple : /home/users/toto DIR_BLOG="$HOME<chemin_vers_le blog>" # exemple : /public_html/dotclear DIR_BACKUP="$HOME<chemin_vers_le_repertoire_de_sauvegardes>" # exemple : /backup SQL_HOST="<votre_hôte_mysql>" SQL_USER="<votre_nom_d_utilisateur_mysql>" SQL_PASS="<votre_mot_de_passe_mysql>" SQL_BASE="<votre_base_mysql>" CURRENTDATE=$(date +%Y%m%d) MAIL_TO="<votre_adresse_email>" MAIL_SUBJECT="[$CURRENTDATE] Sauvegarde SQL" MAIL_MESSAGE="En pièce jointe la base de données en date du $CURRENTDATE" DBDUMP_FILENAME="sql$CURRENTDATE.sql" echo "Export de la base de données..." touch $DIR_BACKUP/$DBDUMP_FILENAME mysqldump -h $SQL_HOST -u $SQL_USER --password=$SQL_PASS $SQL_BASE > $DIR_BACKUP/$DBDUMP_FILENAME echo "Compression de l'export..." tar czf $DIR_BACKUP/$DBDUMP_FILENAME.tar.gz $DIR_BACKUP/$DBDUMP_FILENAME echo "Création de l'achive globale..." tar czf $DIR_BACKUP/puc$CURRENTDATE.tar.gz $DIR_BLOG $DIR_BACKUP/$DBDUMP_FILENAME.tar.gz echo "Envoi de la sauvegarde MySQL par email à $MAIL_BACKUP..." echo $MAIL_MESSAGE | mutt -s $MAIL_SUBJECT -a $DIR_BACKUP/$DBDUMP_FILENAME.tar.gz $MAIL_TO echo "Suppression des fichiers tempporaires..." rm -f $DIR_BACKUP/$DBDUMP_FILENAME rm -f $DIR_BACKUP/$DBDUMP_FILENAME.tar.gz echo "Sauvegarde effectuée dans $DIR_BACKUP/puc$CURRENTDATE.tar.gz"
Personnellement, j'ai stocké ce script dans un dossier bin à la racine de mon répertoire personnel et l'ai nommé backup.sh et lui ai attribué les droits d'utilisation pour l'utilisateur courant (moi) :
$ chmod u+x ~/bin/backup.sh
On peut tester le script en l'executant :
$ ~/bin/backup.sh
Il est également possible de plannifier l'execution de ce script à intervalle régulière ; par exemple tous les dimanches à 23h00. Pour cela, il faut éditer notre fichier crontab :
$ crontab -e
Dans l'éditeur (généralement, Vi), ajoutez cette ligne [2] :
0 23 * * 0 ~/bin/backup_puc.sh
Vous noterez que le script est assez brut de décoffrage, notamment en ce qui concerne la gestion d'erreurs (absente). N'hésitez pas à proposer vos suggestions en commentaire 



















Commentaires
1. Le dimanche 22 janvier 2006, 19:05 par chris
2. Le dimanche 22 janvier 2006, 19:07 par laurent Desechalliers
3. Le dimanche 22 janvier 2006, 19:09 par NiKo
4. Le dimanche 22 janvier 2006, 22:20 par mat
5. Le dimanche 22 janvier 2006, 23:12 par Yannick
6. Le dimanche 22 janvier 2006, 23:15 par NiKo
7. Le lundi 23 janvier 2006, 00:18 par Yannick
8. Le lundi 23 janvier 2006, 01:41 par Talou
9. Le lundi 23 janvier 2006, 10:07 par chris
10. Le lundi 23 janvier 2006, 10:14 par NiKo
11. Le lundi 23 janvier 2006, 11:18 par chris
12. Le lundi 23 janvier 2006, 12:55 par NiKo
13. Le lundi 23 janvier 2006, 15:39 par mika
14. Le lundi 23 janvier 2006, 23:35 par chris