Crontab et Exim4 (Service de messagerie)

Bonjour,

J’ai un VPS qui tourne sous DEBIAN 9 Stretch qui héberge mon site web. J’ai installé Exim4 pour pouvoir envoyer des mails à partir de mon site et tout marche très bien. Néanmoins, depuis que je l’ai installé, je recois CHAQUE JOUR un mail de “Cron Daemon” avec l’adresse que j’ai paramétré.

Le contenu du message (qui diffère parfois mais à 90% des cas c’est celui là):

/etc/cron.daily/logrotate:

mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
error: error running shared postrotate script for '/var/log/mysql/mysql.log 
/var/log/mysql/mysql-slow.log /var/log/mysql/mariadb-slow.log /var/log/mysql/error.log '
run-parts: /etc/cron.daily/logrotate exited with return code 1
/etc/cron.daily/man-db:
/usr/bin/mandb: can't set the locale; make sure $LC_* and $LANG are correct

Je ne sais pas d’où ca vient (je suis vraiment noob niveau service de messagerie)…

Voila tout ce que j’ai pour installer exim4 et le paramétrer:

  • sudo su
  • apt-get update && apt-get install exim4
  • nano /etc/aliases
  • (j’ai rajouté aux dernières lignes
  • root: user1
  • user1: contact@mon_nom_de_domaine.be
  • Ensuite enregistrer et quitter
  • nano /etc/email-addresses
  • Rajouter à la fin:
  • root: contact@mon_nom_de_domaine.be
  • user1: contact@mon_nom_de_domaine.be
  • dpkg-reconfigure exim4-config
  • Là j’ai mis en mode interne

Je sais que dans ma config il y a quelque chose qui va pas mais quoi? Et quelles sont les commandes pour tout changer?

Petite précision encore, le mail je le recois chaque jour à 6h25 pile.

Le sujet du message c’est Cron root@monVPS test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

Et l’expéditeur: contact@mon_nom_de_domaine.be

Salut
cron envoie un mail de résultat à root c’est tout a fait normal
En l’occurrence dans ton cas il s’agit du script quotidien logrotate
logrotate permet de compresser et garder uniquement un certains nombre de fichiers journaux
les définitions sont dans /etc/logrotate.d/

apparement celui qui te pose problème est celui qui gère la base de donneés
/etc/cron.daily/man-db qui a un soucis avec les variables d’environnement LC_* et $LANG

Et pour être précis, ça ne vient pas d’exim ni de son installation, c’est juste que maintenant que tu as exim, tu reçois le mail qui te signale ce problème sur mandb et mysql (aussi).
La bonne nouvelle, c’est que ça ne t’a pas gêné jusqu’ici.

Super et à votre avis qu’est ce que je dois faire pour résoudre ce problème?

Il faut savoir que j’ai toujours eu des problèmes pr me connecter avec root sur ma base de donnée avec phpmyadmin (voir mes posts avant ici )

Si tu ne tiens pas à chercher pourquoi les scripts échouent tu peux facilement indiquer à cron de ne pas envoyer de mail

https://manpages.debian.org/stretch/manpages-fr-extra/crontab.5.fr.html

tu mets MAILTO="" dans /etc/crontab

Non mais ca m’intéresse de savoir pourquoi ca bug :stuck_out_tongue:

J’héberge mon site sur un VPS pour apprendre et j’avoue que ce bug que j’avais eu sur l’autre post non-résolu m’avait frustré lol

Merci en tout cas pour le lien!

Alors en fait, tu n’as pas de problème réel avec crontab et exim4, tu reçois juste grace à exim4 un lot de warnings et/ou d’erreurs que tu ignorais auparavant.

Il faudrait idéalement faire deux nouveaux fils pour les deux problémes, du genre:
1/"connection mysql admin en localhost impossible"
pour traiter:

mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
error: error running shared postrotate script for '/var/log/mysql/mysql.log 
/var/log/mysql/mysql-slow.log /var/log/mysql/mariadb-slow.log /var/log/mysql/error.log '

Là il faudrait quelqu’un de meilleur que moi pour t’aider à diagnostiquer simplement, je ne sais pas trop où chercher comme ça.

2/"problème de locale sur mandb"
pour traiter:

/usr/bin/mandb: can't set the locale; make sure $LC_* and $LANG are correct

Ca, ça doit pouvoir se règler en faisant un dpkg-reconfigure locales en root pour recompiler et sélectionner les locale (langue) que ton systéme utilise.
Sinon, plus simple, tu installes le paquet locales-all (ça bouffe 118Mo)

Bonjour

Peut-être un peu d’inspiration dans cette page web :
https://www.orsal.fr/Erreur-logrotate-mysql-quotidienne

Ce qui est super bizarre, c’est que j’ai suivi toutes les instructions. Je trouve que dans le fichier, il me dit qu’il n’y a pas de mot de passe. Quand je fais mysql -u root -p et qu’il me demande un password, j’appuie juste Enter et il me dit que le mot de passe est faux :confused:

Dans quel fichier ? /etc/mysql/debian.cnf ?
Attention, ce n’est pas ce fichier qui définit les comptes et les mots de passe de mysql. Ce fichier sert juste à fournir les paramètres de connexion aux scripts debian qui ont besoin de se connecter aux bases mysql, si j’ai bien compris. Je ne pense pas que ton mysql soit configuré pour qu’on puisse se connecter au rôle root sans mot de passe.

Il faut:

  1. Que tu retrouves le mot de passe du rôle mysql ‘root’@‘localhost’ (attention, ce n’est pas le compte root de ton système d’exploitation, mais bien le compte root de mysql). Si tu ne l’as plus, utilise sudo dpkg-reconfigure mysql-server, tu pourras définir un nouveau mot de passe. C’est le mot de passe que tu devras fournir en faisant mysql -u root -p
  2. Que tu regardes quel rôle de mysql est utilisé par le script /etc/logrotate.d/mysql-server (visiblement pour l’instant c’est root dans ta configuration, mais ça paraît étrange de devoir inscrire un mot de passe aussi capital en clair dans un fichier de configuration)

Effectivement. J’ai tenté quelque chose, on verra si on m’envoie encore des mails!

Merci beaucoup à tous! Vous êtes top!

Tout marche! Plus aucun mail. Toutes les réponses se trouvent ici! Je le précise si un jour quelqu’un déterre ce post!

Merci à tous! :slight_smile: