[CRON] Problème d'execution du cron

Répondre
Avatar de l’utilisateur
Dodo29
Messages : 898
Inscription : mer. 24 janv. 2018 19:10
Localisation : Toulouse

[CRON] Problème d'execution du cron

Message par Dodo29 »

Bonjour Messieurs-Dames,

je souhaiterai avoir vos lumières sur un point qui me taraude depuis un moment.
Je n'ai pas vraiment pris le temps de regarder en détails mais ce que j'ai pu constater est bizarre. Je m'explique :

J'ai un serveur mail Zimbra et l'accès aux interfaces (webmail, administration) se font de manière "sécurisée" en https, ce qui requiert un certificat.
J'ai donc fait confiance à LetsEncrypt pour ça et ça fonctionne plutôt bien via quelques scripts (Ici : https://github.com/penzoiders/zimbra-auto-letsencrypt)
(Ouai il faut tomber le nginx de zimbra pour faire la vérif, puis lancer la batterie de tests zimbra sur le certificat renouvelé, puis les renommer et les déplacer au bon endroit, puis les intégrer, etc etc ... donc script power)

Le truc c'est que les certificats ont une durée de 90 jours maximum donc il faut vérifier régulièrement (moi je le fais tous les jours, et j'ai configuré les scripts pour ne renouveler que lorsqu'il reste 30 jours avant la fin du certif) que le certificat est valide et le renouveler si besoin. Pour faire ça ==> Cron bien évidement mais c'est là que ça se complique.

J'ai édité mon cron en root avec

Code : Tout sélectionner

crontab -e


j'y ai entré la ligne suivante :

Code : Tout sélectionner

0 0 8 */2 * /root/Certificats/zimbra-auto-letsencrypt/zimbra-auto-letsencrypt.sh --renew /root/Certificats/zimbra-auto-letsencrypt/letsencrypt-zimbra.conf && /root/Certificats/zimbra-auto-letsencrypt/sendmail-notification-successful.sh moi@mondomaine.bzh >/var/log/Zimbra-LE/`date '+%Y%m%d-%H:%M'`.log 2>&1
Ca ne fonctionne pas. Je précise qu'il y a d'autres choses dans le crontab qui fonctionnent (notamment un rappel mail à 7jours et 1jour que le certificat sera renouvelé) qui fonctionnent sans aucun souci.

J'ai redirigé la sortie dans un fichier avec la date pour voir ce qu'il s'y passe => Rien. Aucun fichier n'est créé comme si le cron sautai la ligne en question.
Si je copie la ligne du cron et que je la colle dans le terminal : ça fonctionne comme ça devrait (en root) et il écrit un fichier de log avec la sortie dedans.


Je n'arrive pas à voir là où je me gourre :/

Alors des yeux neufs et avertis avec cron auront peut-être de meilleures réponses à m'apporter :)

PS : J'ai peut-être mis un "R" en trop dans le titre du topic, ça m'étonnerait pas :whistle: :D
Avatar de l’utilisateur
Zedoune
Messages : 15343
Inscription : ven. 12 janv. 2018 17:44

Re: [CRON] Problème d'execution du cron

Message par Zedoune »

essaie avec

( /root/Certificats/zimbra-auto-letsencrypt/zimbra-auto-letsencrypt.sh --renew /root/Certificats/zimbra-auto-letsencrypt/letsencrypt-zimbra.conf && /root/Certificats/zimbra-auto-letsencrypt/sendmail-notification-successful.sh moi@mondomaine.bzh ) >/var/log/Zimbra-LE/`date '+%Y%m%d-%H:%M'`.log 2>&1

comme ça les flux seront redirigés pour les 2 commandes.
Je te conseillerai aussi d'écrire un script avec ta commande dedans et d'appeler le script, plus la syntaxe est clair dans le crontab moins y a de risque de se planter.

Fait attention aussi au $PATH, selon le système cron peut se lancer avec un PATH minimaliste et du coup les commandes dans tes scripts ne seront pas trouvées et donc pas exécutées !!
Avatar de l’utilisateur
Dodo29
Messages : 898
Inscription : mer. 24 janv. 2018 19:10
Localisation : Toulouse

Re: [CRON] Problème d'execution du cron

Message par Dodo29 »

Du coup en suivant tes conseils, j'ai créé un fichier /root/Certificats/cronscript.sh qui est appelé avec les options du cron précédent :)

Testé le script, c'est ok (Faut que je vire des domaines il a pas pu tout valider :whistle: )

Sinon dans mon PATH j'ai ça :

Code : Tout sélectionner

 root@lizher:/var/log/Zimbra-LE# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Mais ça me semble pas déconnant.
Après si une référence manque dans le path au moins je devrais voir ces erreurs dans mon fichier de log, non ?

J'ai vérifié dans les scripts (ce que j'ai pu faire) et j'ai l'impression que toutes le références sont "en dur" donc pas sur le le PATH soit le souci (Mais j'ai pu passer à côté de quelque chose)
Avatar de l’utilisateur
Zedoune
Messages : 15343
Inscription : ven. 12 janv. 2018 17:44

Re: [CRON] Problème d'execution du cron

Message par Zedoune »

il ressemble à quoi ton crontab maintenant ?

ils sont très vicieux ces petits crons !

T'as aussi un fichier de log genre /var/log/cron qui peut te donner des infos (comme le code de retour)
tu peux aussi mettre ton adresse dans un MAILTO="toto@bidule.com" pour avoir la sortie par mail
Avatar de l’utilisateur
Dodo29
Messages : 898
Inscription : mer. 24 janv. 2018 19:10
Localisation : Toulouse

Re: [CRON] Problème d'execution du cron

Message par Dodo29 »

Pour l'instant du coup on a ça :

Code : Tout sélectionner

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
# Avertissement à 1 jour du renouvellement du certificat
0 0 1 */2 * /root/Certificats/zimbra-auto-letsencrypt/sendmail-notification.sh 7 moi@mondomaine.bzh >/dev/null 2>&1
# Avertissement à 7 jours du renouvellement du certificat
0 0 7 */2 * /root/Certificats/zimbra-auto-letsencrypt/sendmail-notification.sh 1 moi@mondomaine.bzh >/dev/null 2>&1
# Renouvellement du certificat
0 0 8 */2 * (/root/Certificats/cronscript.sh) >/var/log/Zimbra-LE/`date '+%Y%m%d-%H:%M'`.log 2>&1
# Export des sauvegardes mail ZeXtras
25 10 * * * /etc/backup-manager.sh

Ah pas vu l'édit sauvage :P
Pour le log de cron ce qui est bizarre c'est que j'ai cherché vite-fait j'ai pas trouvé, justement.

C'est dommage qu'on puisse pas forcer l'exécution du cron pour tester :D Comme les schedule tasks windoze :/
Avatar de l’utilisateur
Zedoune
Messages : 15343
Inscription : ven. 12 janv. 2018 17:44

Re: [CRON] Problème d'execution du cron

Message par Zedoune »

tu mets * * * * * et tu regardes ce qui se passe :)

et dans les logs tu as quoi ?
Avatar de l’utilisateur
dsebire
Messages : 12718
Inscription : ven. 12 janv. 2018 17:44
Localisation : Loiret - entre la ville et les champs

Re: [CRON] Problème d'execution du cron

Message par dsebire »

le log de cron, faut l'activer dans /etc/rsyslog.conf (une ligne a décommenter)
par défaut ça crache mélangé dans /var/log/syslog => grep CRON /var/log/syslog
Avatar de l’utilisateur
Dodo29
Messages : 898
Inscription : mer. 24 janv. 2018 19:10
Localisation : Toulouse

Re: [CRON] Problème d'execution du cron

Message par Dodo29 »

Pour le cat syslog | grep cron :

Code : Tout sélectionner

Apr  3 20:23:01 lizher CRON[3588]: (root) CMD ((/root/Certificats/cronscript.sh) >/var/log/Zimbra-LE/`date '+)
Apr  3 20:24:01 lizher CRON[3759]: (root) CMD ((/root/Certificats/cronscript.sh) >/var/log/Zimbra-LE/`date '+)

pour les logs perso, ben ... rien mais c'est pas normal qu'il manque %Y%m%d-%H:%M'`.log 2>&1 à la fin de la ligne dans le syslog, on est d'accord ? :heink:
Avatar de l’utilisateur
dsebire
Messages : 12718
Inscription : ven. 12 janv. 2018 17:44
Localisation : Loiret - entre la ville et les champs

Re: [CRON] Problème d'execution du cron

Message par dsebire »

en effet ! j'ai déjà eu le soucis ;)
faut que tu "escape" les % sinon il les interprète pas.
faut un truc dans le genre: '+\%Y\%m\%d-\%H:\%M'
Avatar de l’utilisateur
Dodo29
Messages : 898
Inscription : mer. 24 janv. 2018 19:10
Localisation : Toulouse

Re: [CRON] Problème d'execution du cron

Message par Dodo29 »

Ah ah ! :D On tient peut-être un truc alors :)

J'ai fait des tests hier soir et avec * * * * * dans le cron il s'exécute toutes les minutes (normal :D ) et en attendant j'ai mis juste date dans le nom et j'append à la fin.

J'ai bien des trucs qui passent donc ça a l'air de marcher. Faut quand même que je valide le fonctionnement final :)

Maintenant j'ai un autre souci : J'ai un NDD que j'utilise plus pour le serveur et qui ne pointe plus vers le serveur. Du coup il gueuleet ne veut pas renouveler (normal). Faut que je pète le certifi et que je le refasse propre dans zimbra ( :cry: c'est pas une démarche hyper simple )
Répondre