Sauvegarde d’une Release 2 OVH Kimsufi

Comment automatiser la sauvegarde d’un serveur web sous Gentoo Release 2 OVH de façon efficace ?

Pour cela nous allons utiliser l’espace FTP de 100Go mis à disposition par OVH sur les anciennes offres Kimsufi et sauvegarder le répertoire racine web ainsi que la/les bases de données MySQL de façon automatique.

Le tutoriel suivant est une version inspiré et modifié de celui présent ici.

Activation de l’espace de sauvegarde FTP

Par défaut, l’espace de sauvegarde n’est pas activé. Un simple clic sur l’interface du manager OVH permet d’activer cette fonctionnalité gratuite et de recevoir par mail les identifiants de connexion.

L’option se trouve dans la partie service de votre interface de gestion de votre serveur dédié.

Gestion  Backup FTP OVH

 

Processus de sauvegarde

Le processus de sauvegarde proposé correspond à mon besoin personnel, il est donc à adapter au votre.

Chaque nuit pendant les heures creuses, votre serveur va automatiquement archiver dans une arborescence locale les fichiers importants de votre site, ainsi que les données de vos bases MySQL. Chaque jour les fichiers présents dans cette arborescence seront donc écrasés et remplacés par les sauvegardes mises à jour. Votre serveur aura donc en local une copie des fichiers importants datant de la veille.
Une fois que tous les fichiers d’archive sont créés en local, un processus automatique va s’occuper de les envoyer par FTP dans votre espace de sauvegarde offert par OVH. Dans cet espace, 7 répertoires vont être créé correspondant aux 7 jours de la semaine. Chaque jour, on écrasera la sauvegarde de la semaine précédente située à cet emplacement. Votre espace FTP contiendra donc à tout moment les sauvegardes de votre système archivées pour les 7 derniers jours.

Création de l’arborescence locale

[USER] est à remplacer avec vos informations

cd /home/[USER]/
mkdir save
mkdir save/mysql
mkdir save/www
mkdir bin
mkdir log

Création de l’arborescence sur l’espace FTP

[USER_FTP], [PASSWORD_FTP] et [HOST_FTP] sont à remplacer avec vos informations

ncftp -u [USER_FTP] -p [PASSWORD_FTP] [HOST_FTP]

Puis :

mkdir 1
mkdir 1/www
mkdir 1/mysql
mkdir 2
mkdir 2/www
mkdir 2/mysql
mkdir 3
mkdir 3/www
mkdir 3/mysql
mkdir 4
mkdir 4/www
mkdir 4/mysql
mkdir 5
mkdir 5/www
mkdir 5/mysql
mkdir 6
mkdir 6/www
mkdir 6/mysql
mkdir 7
mkdir 7/www
mkdir 7/mysql
exit

Création du script de sauvegarde des sites web

Création du script dans le dossier bin

cd bin
nano site-save.sh

Contenu du script ([USER] est à remplacer avec vos informations) :

#!/bin/bash
renice 19 -p $ &>/dev/null
tar -czf /home/[USER]/save/www/siteweb.tgz /home/[USER]/www >> /home/[USER]/log/tar.log

Rendre exécutable le script :

chmod a+x site-save.sh

Création du script de sauvegarde des sites web

Il est recommandé de créer un utilisateur de base de données réservé aux sauvegardes, ayant le privilège de lire toutes les tables de toutes les bases dans MySQL (privilège SELECT), et de les verrouiller pendant la sauvegarde (privilège LOCK TABLES) sans pouvoir les modifier.

Cela permet de masquer vos mots de passe de base de données habituels en clair dans vos scripts de sauvegarde.

nano data-dump.sh

Contenu du script ([USER_SQL][PASSWORD_SQL], [BASE1], [BASE2] et [USER] sont à remplacer avec vos informations)  :

#!/bin/bash
renice 19 -p $$ &>/dev/null
mysqldump -u [USER_SQL] --password=[PASSWORD_SQL] [BASE1] > /home/[USER]/save/mysql/[BASE1].sql
mysqldump -u [USER_SQL] --password=[PASSWORD_SQL] [BASE2] > /home/[USER]/save/mysql/[BASE2].sql

Rendre exécutable le script :

chmod a+x data-dump.sh

Création du script de transfert FTP

nano ftpback.sh

Contenu du script ([USER], [USER_FTP][PASSWORD_FTP] et [HOST_FTP] sont à remplacer avec vos informations) :

#!/bin/bash
Numjour=`date +%u`
FTPHost='[HOST_FTP]'
FTPLogin='[USER_FTP]'
FTPPass='[PASSWORD_FTP]'
FTPConnectstring="open -u $FTPLogin -p $FTPPass $FTPHost"
FTPCommands="
cd $Numjour/www
lcd /home/[USER]/save/www
put *
cd ../mysql
lcd /home/[USER]/save/mysql
put *
"
echo -e "$FTPConnectstring\n$FTPCommands\nexit\nno" | ncftp

Rendre exécutable le script :

chmod a+x ftpback.sh

Test des scripts

On teste un à un les scripts pour s’assurer de leur bon fonctionnement

./site-save.sh
./data-dump.sh
./ftpback.sh

Création du script principal

nano nightly-save.sh

Contenu du script ([USER] sont à remplacer avec vos informations) :

#!/bin/bash
renice 19 -p $$ &>/dev/null
/home/[USER]/bin/site-save.sh
/home/[USER]/bin/data-dump.sh
/home/[USER]/bin/ftpback.sh

Rendre exécutable le script :

chmod a+x nightly-save.sh

Test du script principal :

./nightly-save.sh

Automatisation du script principal via cron

Ouverture de la crontab :

crontab -e

Ajout de la ligne permettant de lancer le script principal tout les jour à 4h ([USER] sont à remplacer avec vos informations).

0   4  *   *   *     /home/[USER]/bin/nightly-save.sh

2 réflexions au sujet de « Sauvegarde d’une Release 2 OVH Kimsufi »

  1. Virtual Private Servers

    J utilise ce systeme depuis plusieurs mois sur un serveur Debian OVH, avec un espace Dropbox gratuit, et je confirme que cela fonctionne parfaitement, je recupere bien mes sauvegardes tous les jours. Comme je possede deux kimsufi J ai adapter le scripts ftp pour qu il pointe sur le serveur ftp d un kimsufi.

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *