Pour automatiser ces tâches, nous allons créer deux scripts maison regroupant les procédures à effectuer.
Dans le répertoire /usr/local/bin/, créez un fichier sauvegarde_site avec le contenu suivant:
#!/bin/sh # sauvegarde des fichiers/repertoires # hebdommadaire, sur les 4 dernieres semaines # A modifier: SOURCE=/var/www DESTINATION=/mnt/backup DATE=`date +%Y-%m-%d` WEEK=`date +%W` let "DEL=$WEEK-4" # backup de la semaine /usr/bin/rdiff-backup $SOURCE $DESTINATION/$WEEK.$DATE # efface le backup vieux de 4 semaines rm -rf $DESTINATION/$DEL.*
Toujours dans le répertoire /usr/local/bin/, créez un fichier sauvegarde_bdd avec le contenu suivant:
#!/bin/sh # sauvegarde des bases de données # hebdommadaire, sur les 4 dernieres semaines # A modifier: USER=root PASS=mot_de_passe_sql DESTINATION=/mnt/backup DATE=`date +%Y-%m-%d` WEEK=`date +%W` let "DEL=$WEEK-4" # backup de la semaine mysqldump -u $USER --password=$PASS --all-databases | gzip > $DESTINATION/$WEEK.$DATE.sql.gz # efface le backup vieux de 4 semaines rm -rf $DESTINATION/$DEL.*.sql.gz
Assurez-vous que les scripts soient exécutables:
machine:~# chmod 700 /usr/local/bin/sauvegarde_site machine:~# chmod 700 /usr/local/bin/sauvegarde_bdd
Pour planifier l'exécution de ces scripts, procédez comme ceci:
user@machine:~$ su Password: machine:~# crontab -e
Ajoutez ensuite les lignes suivantes:
# backup des fichiers tous les samedi a 3h00 0 3 * * 6 /usr/local/bin/sauvegarde_site # backup de la base de donnees tous les samedi a 3h00 0 3 * * 6 /usr/local/bin/sauvegarde_bdd
Il vous est également possible d'éditer directement le fichier /var/spool/cron/crontabs/root même si ce n'est pas conseillé (relancez le démon cron après modification).
La syntaxe fonctionne de la manière suivante:
0 3 * * 6 /usr/local/bin/sauvegarde_site | | | | | | | | | | | |-----> programme à exécuter | | | | |-------> jour de la semaine (0 pour dimanche, 1 pour lundi, etc.) | | | |---------> mois (1-12) | | |-----------> jour (1-31) | |-------------> heure (0-23) |---------------> minute (0-59) * est une wilcard = toujours "vrai"
La commande crontab -l permet de connaître toutes les entrées déjà configurées. La commande crontab -r permet de les effacer.
| Précédent | Sommaire | Suivant |
| Sauvegarde de la base de données | Niveau supérieur | Plus d'information |