Si comme moi, vous vous demandez comment réaliser des backups(sauvegarde d’un répertoire) ou des dumps(sauvegarde de la base de données) de manière très automatisée sur un serveur dédié.
Alors j’ai une solution à vous proposer à l’aide de scripts en Shell, que vous pourrez améliorer à votre sauce.
Voici l’exemple type pour les dumps
#!/bin/bash
#Variables utilisées
LOCAL_FOLDER="/home/backups/sql";
FTP_SERVER="ftp.distant.fr";
FTP_USER="user";
FTP_PASSWORD="pass";
FTP_FOLDER="/sql/";
#Génération du dump
DATE=$(date +%Y-%m-%d_%H-%M)
FILENAME="dump_${DATE}.sql.gz"
cd $LOCAL_FOLDER
mysqldump -u root --password="pass" --all-databases | gzip> ${FILENAME};
# On référence les fichiers à copier
FTP_FILES=sudo ls $LOCAL_FOLDER/*
# Résumé des données
cd $LOCAL_FOLDER
# Lancement de la copie
ftp -vin $FTP_SERVER <<EOF
user $FTP_USER $FTP_PASSWORD
cd $FTP_FOLDER
binary
mput *
bye
EOF
# Suppression du fichier temporaire
rm $FILENAME
# On envoi un mail de confirmation
mail -s 'Dumps - succès' 'info-gerance@ndd.com' -a 'FROM: mon-srv <root@ndd.com>' <<EOMAIL
Un nouveau dumps de la base de donnée à été créé avec succès.
Fichier ajouté : /sql/dump_${DATE}.sql.gz
EOMAIL
Et voici l’exemple pour réaliser un backup. Ici backup du répertoire des sites web.
#!/bin/bash
#Variables utilisées
LOCAL_FOLDER="/home/backups/www";
FTP_SERVER="ftp.distant.fr";
FTP_USER="user";
FTP_PASSWORD="pass";
FTP_FOLDER="/www/";
#Génération du backup
DATE=$(date +%Y-%m-%d_%H-%M)
FILENAME="www_backup_${DATE}.tar"
cd $LOCAL_FOLDER
tar -cf ${FILENAME} /home/www/;
gzip ${FILENAME};
mv ${FILENAME}.gz ${LOCAL_FOLDER};
# On référence les fichiers à copier
FTP_FILES=sudo ls $LOCAL_FOLDER/*
# Résumé des données
cd $LOCAL_FOLDER
# Lancement de la copie
ftp -vin $FTP_SERVER <<EOF
user $FTP_USER $FTP_PASSWORD
cd $FTP_FOLDER
binary
mput *
bye
EOF
# Suppression du fichier temporaire
rm $FILENAME
# On envoi un mail de confirmation
mail -s 'Backups - succès' 'info-gerance@ndd.com' -a 'FROM: mon-srv <root@ndd.com>' <<EOMAIL
Un nouveau backup du répertoire /home/www a été réalisé.
Fichier ajouté : /www/www_backup_${DATE}.sql.gz
EOMAIL
En espérant que ces deux petits scripts vous aiderons