Heure crontab décalée sur mon VPS

Iznogood1
Messages : 3
Inscription : 18 janvier 2015, 16:15

Heure crontab décalée sur mon VPS

Message par Iznogood1 » 18 janvier 2015, 16:34

Bonjour

soit le script (/home/machin/script.sh) suivant qui envoie un fichier log par mail

Code : Tout sélectionner

#! /bin/sh
subject="Test - Le "$(date +"%d/%m/%Y @ %H:%M:%S")
mail -s "$subject" monadresse@monfournisseur.fr < test.log
et la configuration "crontab" suivante

Code : Tout sélectionner

0 0 * * * /home/machin/script.sh
Je reçois bien un mail, mais à 6:00 du matin.
Le titre du mail est "Test - Le dd/mm/yyyy @ 06:00"

Pourtant, mon VPS est "à l'heure" (date et date -u retournent des infos correctes).
Une idée ?

Beta-Pictoris
Messages : 1017
Inscription : 07 janvier 2014, 21:48
Localisation : Angers, France

Re: Heure crontab décalée sur mon VPS

Message par Beta-Pictoris » 18 janvier 2015, 19:55

As tu regardé dans /var/log/cron* d'éventuels messages explicatifs?

Iznogood1
Messages : 3
Inscription : 18 janvier 2015, 16:15

Re: Heure crontab décalée sur mon VPS

Message par Iznogood1 » 18 janvier 2015, 22:01

Merci de ton aide Beta-Pictoris.

Dans /var/log, j'ai un fichier d'aujourd'hui cron-20150118
qui comporte bien une ligne
Jan 18 00:00:01 .... CROND[3763]: (machin) (CMD /home/machin/script.sh)
et un peu plus tard (le temps du traitement) l'envoie du mail
Jan 18 00:29:41 ... CROND[3762]: (machin) MAIL (mailed 2213 bytes of output but got status 0x0043#012)
J'en conclue que le job se lance à 00:00 comme prévu, mais le log et le mail indique 6:00
-> l'heure "prise en compte" pour le cron serait-elle différente de celle utilisée pour le log ??

A noter que quand j'ai installer mon VPS, la date était de -6 heures par rapport à la mienne.
J'ai alors régler le fuseau horaire par un lien symbolique
ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
Enfin et pour être complet, j'ai sur mon VPS un fichier
/etc/cron.d/dailyjobs

Code : Tout sélectionner

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
20 3 * * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.daily
50 5 * * 0 root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.weekly
39 3 15 * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.monthly
que je n'ai pas sur un autre VPS ne présentant pas ce problème.
Pourrait-ce être la source du décalage ?

Beta-Pictoris
Messages : 1017
Inscription : 07 janvier 2014, 21:48
Localisation : Angers, France

Re: Heure crontab décalée sur mon VPS

Message par Beta-Pictoris » 19 janvier 2015, 00:41

Dans ton fichier script.sh, retire l'espace se trouvant après le point d'exclamation.

Dans ton crontab qui lance ce script, as tu défini les variables SHELL, PATH,... ?

Un code d'erreur est retourné: status 0x0043#012. J'ai l'impression que ton mail ne peut pas partir à minuit.

Peux tu ajouter, à la fin ton script, la commande "echo $subject" ?

Cela te permettra de comparer l'heure du mail local que tu va recevoir à l'heure de son contenu.

Iznogood1
Messages : 3
Inscription : 18 janvier 2015, 16:15

Re: Heure crontab décalée sur mon VPS

Message par Iznogood1 » 19 janvier 2015, 14:15

Merci de ces conseils.

Finalement, j'ai supprimé le fichier /etc/cron.d/dailyjobs (cité dans mon message précédant)
et le script s'est bien exécuté à l'heure prévue !

Il me reste à comprendre ces lignes
20 3 * * * root [ ! -f /etc/cron.hourly/0anacron ] && run-parts /etc/cron.daily

Beta-Pictoris
Messages : 1017
Inscription : 07 janvier 2014, 21:48
Localisation : Angers, France

Re: Heure crontab décalée sur mon VPS

Message par Beta-Pictoris » 19 janvier 2015, 16:22

Si le fichier 0anacron n'est pas trouvé, crond lance les scripts des répertoires cron.daily, cron.weekly et cron.monthly.
Ton fichier dailyjobs fait le travail d'anacron.
Il est, donc, possible que des scripts lancés 2 fois perturbent l'envoi des mails.

Répondre