Depuis que j’ai déplacé les bases de données SQL sur une autre partition, logrotate semble avoir quelques soucis avec l’archivage des logs de MariaDB. Voici le message d’erreur complet :
/etc/cron.daily/logrotate: logrotate_script: 3: [: /var/run/mysqld/mysqld.pid: unexpected operator
Code language: JavaScript (javascript)
C’est en fait un problème de regex connu et la solution est très simple.
1. On édite le fichier /etc/logrotate.d/mysql-server
:
nano /etc/logrotate.d/mysql-server
2. on recherche la ligne avec la regex de grep
:
if [ -f `my_print_defaults --mysqld | grep -oP "pid-file=\K[^$]+"` ]; then
Code language: CSS (css)
3. on ajoute m1
aux arguments de grep
, ce qui nous donne:
if [ -f `my_print_defaults --mysqld | grep -oPm1 "pid-file=\K[^$]+"` ]; then
Code language: CSS (css)
Sauvegardez le fichier. Vous ne recevrez plus de message d’erreur lors du lancement de la tâche cron et les fichiers logs de MySQL/MariaDB seront bien archivés.
Envie d'ajouter des fonctionnalités exceptionnelles à votre site WordPress ou WooCommerce? Je suis là pour vous aider.