Sauvegarde automatique base de données et site web

Publié le 25 janvier 2013 par Menerve
Vous avez un serveur web, un VPS sous Linux / Ubuntu?
Voici un script bash, une solution simple pour sauvegarder sa base de données en PostgreSQL et son répertoire web. L'article est grandement inspiré de celui de Spiderneo (http://www.spiderneo.com/gestion-sauvegarde-sur-serveur-ubuntu). Dans ce dernier on ne parle pas de PostgreSQL mais de MySQL.
#!/bin/bash
#Création de l'archive dans /home/user/SAVE/ qui va contenir tout ce qui se trouve dans /var/www/
tar -czvf /home/user/SAVE/www_$(date '+%d').tar.gz /var/www/* --overwrite
 
#Sauvegarde de la base PostgreSQL 'database'
#http://www.postgresql.org/docs/8.1/static/app-pgdump.html
#http://stackoverflow.com/questions/6523019/postgresql-scripting-psql-execution-with-password
PGPASSWORD=yourpass /usr/bin/pg_dump -i --inserts --format=t --host=localhost --port=5432 -U userSQL database > /home/user/SAVE/pgsql_database_$(date '+%d').tar
#Compression de l'archive
gzip /home/user/SAVE/pgsql_database_$(date '+%d').tar -f
 
#On se connecte par FTP au serveur de sauvegarde, puis on copie le répertoire /home/user/SAVE/ dans le répertoire /SAVE_distant du serveur de sauvegarde
#http://doc.ubuntu-fr.org/lftp
lftp ftp://userFTP:passwordFTP@adress_serveur_FTP -e "mirror -e -R -x fichier_1_a_exclure -x fichier_2_a_exclure /home/user/SAVE/ /SAVE_distant ; quit"

Pour aller plus loin dans l'automatisation, vous pouvez planifier la sauvegarde via cron (http://doc.ubuntu-fr.org/cron).