MySQL: Maintenance automatique avec log

Posted by ZedTuX 0n R00t on January 12, 2014

Je vient de constater dans mes logs que MySQL râle sur quelques tables… C’est plus exactement mysqlcheck qui est à l’origine de ces messages.

J’ai donc trouvé comment corriger tout ca en ligne de commande, et comme je n’aime pas faire 2 fois la même chose ont va laisser notre serveur se débrouiller seul ! :-) (C’est un grand garçon maintenant !! xD)

Donc, je vais utiliser cron.

Disons que nous l’exécuterons 1 fois tout les jours, à 1h du matin. Ca sera suffisant.

Je vais donc demander à mysqlcheck de vérifier toutes les tables (A), de les analyser (a), de les optimiser (o) et surtout de les réparer automatiquement (–auto-repair).

Donc voici la commande :

1
mysqlcheck -Aao –auto-repair -u root -p[password]

La commande retourne des lignes avec OK si il y a eut des changements, et sinon

Table is already up to date.

Sachant ceci, il reste plus qu’a utiliser grep ! ;-)

Création du Job Cron !

Rien de bien compliqué ! On ouvre le registre des tâches:

1
crontab -e

Là on ajoute cette ligne :

1
0 1 * * * mysqlcheck -Aao –auto-repair -u root -p[password] | grep OK > /var/log/mysqlcheck.log

Et maintenant, tous les jours, à 1h du matin, il exécutera ma commande, et écrira dans le fichier de log les lignes qui ressortent en OK ! :-)