Page 1 sur 1

Heure crontab décalée sur mon VPS

Publié : 18 janvier 2015, 16:34
par Iznogood1
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 ?

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

Publié : 18 janvier 2015, 19:55
par Beta-Pictoris
As tu regardé dans /var/log/cron* d'éventuels messages explicatifs?

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

Publié : 18 janvier 2015, 22:01
par Iznogood1
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 ?

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

Publié : 19 janvier 2015, 00:41
par Beta-Pictoris
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.

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

Publié : 19 janvier 2015, 14:15
par Iznogood1
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

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

Publié : 19 janvier 2015, 16:22
par Beta-Pictoris
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.