#!/bin/bash ################################################### # Script de sauvegarde de serveur Web # Version 1.1 / Date : 20 mai 2010 # # Auteur : Jonathan Petitcolas # E-mail : contact@jonathan-petitcolas.com # Site : www.jonathan-petitcolas.com # # Presqu'aucun droits réservés. Pensez juste à # laisser ce petit encadré. :) #################################################### ## Configuration du script BACKUP_ROOT="/home/backups/" # Dossier de sauvegarde temporaire WEB_FOLDER="/home/www/" # Dossier contenant les fichiers des sites Web WEB_BACKUP_FOLDER=${BACKUP_ROOT}"web/" # Dossier temporaire de sauvegarde des fichiers Web MYSQL_BACKUP_FOLDER=${BACKUP_ROOT}"mysql/" # Dossier temporaire de sauvegarde des bases de données MYSQL_USER="root" # Utilisateur de la base de données (doit accéder à toutes les bases) MYSQL_PASSWORD="password" # Mot de passe de l'utilisateur ci-dessus FTP_HOST="ftp.backup.net" # Serveur FTP de sauvegarde FTP_USERNAME="ftpuser" # Utilisateur FTP FTP_PASSWORD="password" # Mot de passe de l'utilisateur ci-dessus DATE=`date '+%Y-%m-%d'` # Date du jour ## Vérification des dossiers # Si les dossiers de sauvegarde n'existent pas, on les créé. [ ! -e ${MYSQL_BACKUP_FOLDER} ] && mkdir -p ${MYSQL_BACKUP_FOLDER} [ ! -e ${WEB_BACKUP_FOLDER} ] && mkdir -p ${WEB_BACKUP_FOLDER} ## Sauvegarde des bases de données echo Backuping databases... for db in `mysql -u ${MYSQL_USER} --password=${MYSQL_PASSWORD} -sBe 'SHOW DATABASES'` ; do mysqldump -u ${MYSQL_USER} --password=${MYSQL_PASSWORD} ${db} > ${MYSQL_BACKUP_FOLDER}${db}".sql" done echo Databases saved. ## Sauvegarde des fichiers du Web echo Saving Web files... for folder in `find ${WEB_FOLDER}* -type d -prune | cut -f 4 -d /`; do CURRENT_FILE=${WEB_BACKUP_FOLDER}${folder} tar -cf ${CURRENT_FILE}.tar ${WEB_FOLDER}${folder} bzip2 ${CURRENT_FILE}.tar echo ${folder} saved! done echo Files saved. ## Archivage et compression des sauvegardes echo Archiving all files... tar -cf ${BACKUP_ROOT}${DATE}.tar ${BACKUP_ROOT}* bzip2 ${BACKUP_ROOT}${DATE}.tar echo Backup file ${BACKUP_ROOT}${DATE}.tar.bz2 done. ## Envoi des fichiers sur le serveur echo Migrating files on backup server... ftp -in <