Aujourd’hui, je vais vous parler du script automysqlbackup que j’utilise depuis des années et qui permet de sauvegarder vos bases de données MySQL puis de vous envoyer le tout par mail.
Dans ce billet, nous allons utiliser la version 2.5.1-01 qui n’est pas la plus récente mais qui à l’avantage de ne pas être en release candidate et de se configurer facilement directement dans le script shell… D’autre part, nous allons considérer que vous avez installé MySQL et ainsi qu’un serveur de mail.
Pour commencer, il va falloir se mettre en utilisateur root :
sudo su
Récupération du script automysqlbackup-2.5.1-01.sh
Pour récupérer le script, il faut se rendrez sur sourceforge puis cliquer sur le lien de la dernière version ou plus simplement, sur votre serveur vous faites la commande ci-dessous :
wget -O automysqlbackup-2.5.1-01.sh http://sourceforge.net/projects/automysqlbackup/files/AutoMySQLBackup/AutoMySQLBackup%20VER%202.5/automysqlbackup-2.5.1-01.sh/download
Et si sourceforge ne fonctionne pas au moment où vous lisez ces lignes j’ai fait un miroir…
wget -O automysqlbackup-2.5.1-01.sh http://files.hawkcreation.com/tools/automysqlbackup-2.5.1-01.sh
Installation du script
Nous allons maintenant installer le script dans un dossier spécial que seul l’utilisateur root pourra voir.
mkdir /home/automysqlbackup mkdir /home/automysqlbackup/data mv automysqlbackup-2.5.1-01.sh /home/automysqlbackup/automysqlbackup-2.5.1-01.sh chmod -R 700 /home/automysqlbackup/
Configuration de automysqlbackup
Pour éditer la configuration du script, il suffit de faire la commande suivante :
nano /home/automysqlbackup/automysqlbackup-2.5.1-01.sh
Puis modifiez les valeurs suivantes :
- USERNAME : Nom de l’utilisateur MySQL qui aura accès aux bases de données que vous souhaitez sauvegarder. Si il doit tout sauvegarder alors il faut que ce soit un administrateur comme par exemple « root » .
- PASSWORD : Indiquez le mot de passe de l’utilisateur.
- DBNAMES : Laissez le texte « all » si vous voulez toutes les bases de données ou sinon entrez les noms des bases en les séparant par un espace « DB1 DB2 DB3 » .
- BACKUPDIR : Dossier dans lequel sera stocker les sauvegardes en plus des mails. Dans notre cas ce sera /home/automysqlbackup/data/ que nous avons créé précédemment.
- MAILCONTENT : On définit le paramètre « files » pour recevoir les dumps dans le mail d’information.
- MAXATTSIZE : Taille limite d’un mail qui vous sera envoyé pour ma part j’ai mit 20480 ce qui fait 20 Mo.
- MAILADDR : Adresse mail ou sera stocké vos dumps et autant dire qu’il faut une boite mail avec pas mal d’espace !
Mise en place du crontab
Il ne nous reste plus qu’à définir le cron pour que la sauvegarde se fasse tous les jours. Pour cela en tant que root (toujours) ouvrez crontab en édition :
crontab -e
Maintenant ajoutez la ligne ci-dessous qui demande l’exécution du script tous les jours à 1h01.
1 1 * * * sh /home/automysqlbackup/automysqlbackup-2.5.1-01.sh &> /dev/null
Pour finir, vous pouvez tester que tout fonction à l’aide de la commande ci-dessous !
sh /home/automysqlbackup/automysqlbackup-2.5.1-01.sh
Vous recevrez un mail dans pas longtemps avec toutes vos bases de données et vous retrouverez par la même occasion un sommeil paisible =P
« Tout pareil mais avec un fichier de configuration » !
Pour les petits curieux qui auraient regardé la ligne 27, vous aurez probablement vu qu’il y a un chemin vers un fichier de configuration suivi d’un test pour voir si le fichier existe. C’est par ce biais que vous pouvez gérer votre configuration à partir d’un fichier mais dans ce cas il vaut peut être mieux faire :
apt-get install automysqlbackup nano /etc/default/automysqlbackup
A vous de voir !