compte rendu crontab

4

Click here to load reader

Upload: laetitia-horel

Post on 15-Jan-2017

178 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Compte rendu crontab

HOREL Laëtitia

SAUVEGARDE D’UNE BASE DE DONNÉES AVEC CRONTAB

Mise en situation

Avant de débuter, une question s’impose : qu’est-ce que Crontab ? C’est un service sous Linux qui permet de modifier des fichiers de configuration du programme Cron. Ces fichiers vont nous permettre d’exécuter des tâches et de définir la période dans laquelle la tâche doit s’exécuter. Dans notre cas, nous allons via Crontab sous CentOS 7, paramétrer une sauvegarde d’une base de données SQL à un instant T.Notre distribution contient actuellement un serveur SQL avec une base de données nommée « communes ». Par peur de perte d’informations, nous souhaitons en faire une sauvegarde.Pour ce faire, deux méthodes existent : la sauvegarde manuelle ou la sauvegarde planifiée avec Crontab.

Sauvegarde manuelle

Afin de sauvegarder notre base, nous exécutons la commande suivante :

# mysqldump -u [username] –p[password] [database_name] > [emplacement_fichier et nom_fichier.sql]

Dans notre cas, cela nous donne:

# mysqldump –u root –p communes >/bin/backup/sauv_communes.sql

Cependant, cette méthode présente un gros inconvénient. Il faut être obligatoirement devant la machine et lancer la commande pour pouvoir sauvegarder. C’est pourquoi il existe des services tels que Crontab pour pouvoir automatiser la tâche.

Sauvegarde avec Crontab

Crontab est en résumé un planificateur de tâches sous forme de service installé par défaut sur toutes les distributions Unix et Linux. Afin de créer la sauvegarde, il faut taper la commande crontab –e. Cette commande nous permet d’éditer le fichier crontab.Normalement, lors de la première ouverture, le fichier est vide. C’est à cet endroit que nous allons créer la planification.

Elle se constitue de la façon suivante :

1ère valeur : les minutes (min) à laquelle la tâche doit s’effectuer : valeur allant de 0 à 59. 2ème valeur : l’heure (h) de l’exécution de la tâche : valeur allant de 0 à 23. 3ème valeur : le jour du mois (jdm) à laquelle la tâche doit s’effectuer : valeur allant de 1 à 31. 4ème valeur : le mois (m) de l’exécution de la tâche : valeur allant de 1 à 12.

Page 2: Compte rendu crontab

HOREL Laëtitia

5ème valeur : le jour de la semaine (jds) : valeur allant de 0 à 6, sachant que 6 = dimanche.

Si par exemple nous voulons que la tâche s’effectue tous les jours, il faudra alors assigner la valeur *qui signifie « tous ».S’ensuit la commande que nous souhaitons effectuer puis rediriger votre résultat vers un fichier.

Dans notre cas, nous voulons faire une sauvegarde de la base de données « communes ». Nous allons donc remplacer la commande à exécuter par la commande manuelle vue plus haut. Voici ce que cela donne :

(min)(h)(jdm)(m)(jds)mysqldump--user= ‘nom_utilisateur’ --password=’mdp_base_de_données’ nom_base_de_données>chemin_et_fichier_sauvegarder

Ci-dessous se trouve un exemple concret de la commande à rajouter dans le fichier crontab :

39 22 * * * mysqldump --user=’root’ --password=’root00*’ communes > /bin/communessave.sql

Afin de traduire, la sauvegarde de ma base de données « communes » se fera tous les jours à 22h39 et se sauvegardera sur le fichier « communessave.sql » dans le dossier« bin »

Pour vérifier le résultat de notre commande, il faut ouvrir le fichier de sauvegarde grâce à la commande :vi /bin/communessave.sql(dans le cas de l’exemple ci-dessus). Dans ce fichier doit se trouver tout un tas d’informations sur notre base de données.

Si une erreur quelconque se produisait lors de la sauvegarde, un mail est envoyé à root et un message s’affiche dans Linux vous indiquant où trouver le mail. L’erreur est affichée afin de corriger le problème.

Sauvegarde par script :

Page 3: Compte rendu crontab

HOREL Laëtitia

Ce script nous permettra de personnaliser le nom du fichier de sauvegarde par la date et l’heure de sa création.

Nous avons d’abord créé un dossier scripts dans /root/pour créer nos scripts. Puis nous avons créé un fichier backup_bdd.sh en donnant les droits d’éxecution pour root avec chmod 700.

Dans backup_bdd.sh, nous rajoutons les lignes suivantes :

fori in communes; domysqldump –-user=’root’ –-password=’motpasse_bdd’ $i> ${i}_`date +"%Y-%m-%d"`.sqltar jcf ${i}_`date +"%Y-%m-%d"`.sql.tar.bz2 ${i}_`date +"%Y-%m-%d"`.sqlrm ${i}_`date +"%Y-%m-%d"`.sql

Pour le tester, il faut lancer la commande sh backup_bdd.shpuis se rendre dans /root/scripts pour vérifier que le fichier est présent. S’il est présent, c’est que le script fonctionne. Le nom du fichier doit apparaître de la façon suivante : comunes_2015-10-23

Il suffira alors de refaire un crontab –e en ajoutant la commande ci-dessus en plus des valeurs de planification. Ce qui donne :