Sauvegarde de sites et de bases de données
Il n'inclut pas la sauvegarde des mails (postfix, roundcube, horde).
Etape 1 : création du script de compactage - espaces web - bases
Adapter le script suivant pour votre serveurCe script permet de sauvegarder sur 30 jours flottants.
fichier : scriptDeSauvegarde.sh
# backup : mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql
# restore : mysql -u root -p[root_password] [database_name] < dumpfilename.sql
# on ne prend que le %d de la date : le jour pour tous les jours du mois glissant.
sauvegarde=$(date +%d)
echo sauvegarde du $sauvegarde - Serveur 4
dir=/var/www/vhosts/dossier_tempo
cd $dir
rm -f *.gz
rm -f *.sql
# quand on l'exécute par crontab, s'assurer qu'on est dans le bon répertoire.
# sauvegarde des bases
# l'utilisateur a été modifié pour avoir les privilèges nécessaires
# connexion à phpmyadmin avec user root, puis onglet privilèges,
# la connexion à phpmyadmin peut se faire à partire de Plesk
# Identifiants MySQL
MYSQL_USER="utilisateurAvecPrivilèges"
MYSQL_PASSWORD="motDePasseDelUtilisateurAvecPrivilèges"
# Commandes MySQL (aucune raison de modifier ceci)
MYSQL=/usr/bin/mysql
MYSQLDUMP=/usr/bin/mysqldump
# Bases de données MySQL à ignorer
SKIPDATABASES="Database|information_schema|performance_schema|mysql"
# ---- NE RIEN MODIFIER SOUS CETTE LIGNE ------------------------------------------
# Création par date d'un nouveau dossier (facultatif), dans ce cas
# mkdir -p $dir/$DATE
# Retrieve a list of all databases
databases=`$MYSQL -u$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "($SKIPDATABASES)"`
# Dumb the databases in seperate names and gzip the .sql file
for db in $databases; do
echo $db
$MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --skip-lock-tables --events --databases $db > "$dir/$db.sql"
done
tar cfvz $dir/backup_bases_OVH-1a1_$sauvegarde.tar.gz $dir/*.sql
# Sauvegardes des hosts
# dans ce cas la liste des hosts se trouve dans un dossier de configuration, c'est pourquoi le script va supprimer '.conf' du nom
ls /etc/httpd/conf/plesk.conf.d/vhosts > lhosts
while read lhosts; do
if [ $lhosts = "nomDeDomaineàNePasSauvegarder.conf" ];
then
echo $lhosts ... skip
else
unHost=${lhosts//.conf/}
echo $unHost ... tar
tar czf $dir/backup_OVH-1a1_$unHost.$sauvegarde.tar.gz /var/www/vhosts/$unHost/httpdocs
fi
done < lhosts
ls -l
sh copieVersAutreServeur.sh
Etape 2 : copie des fichiers compactés vers un autre serveur
Cetaines offres incluent un serveur de 100go pour les sauvegardes. Par exemple SoYouStart d'OVH, met à disposition un serveur Backup Storage. L'étape suivante sera de créer le script copierVersAutreServeur.sh qui se connectera au serveur de backups et copiera l'ensemble des fichiers compactés (*.gz) grâce à lftp. Il faut bien sûr que lftp soit installé sur votre serveur.fichier : copieVersAutreServeur.sh
cd $dir lftp -u userServeurBackup,motDePasseServeurBackup nomDuServeurDeBackup <commands
Etape 3 : Créer le fichier de commandes lftp
fichier : commandsset ssl:verify-certificate no mput *.gz
