Veuillez consulter mon prochain message pour une solution spécifique à Ubuntu
Je sais que c'est un forum Ubuntu, mais je crois que la réponse sera très similaire à la manière dont vous le feriez sur un système Red Hat. Je n'ai pas de système Ubuntu sous la main pour tester cela, mais je l'ai testé sur Red Hat.
Tout ce que vous avez à faire est d'ajouter une ligne à votre script d'initialisation du démon cron. Définissez et exportez la variable d'environnement TZ, comme ceci :
export TZ=UTC
Ensuite, redémarrez votre démon cron. Assurez-vous de placer cet export dans le script de démarrage du démon cron APRÈS tout autre paramétrage de variables et de sourcing - je pense que c'est peut-être pourquoi la modification du script /etc/default/cron
de l'auteur initial n'a pas fonctionné pour lui. Peut-être qu'il l'a défini, mais il a ensuite été réinitialisé par quelque chose d'autre plus bas dans le script.
Remarquez que cela n'affectera que le démon cron lui-même, et non les tâches que vous exécutez via cron, donc si vous voulez qu'une tâche cron utilise UTC comme fuseau horaire, vous devrez également le définir dans la tâche elle-même.
Vous ne pouvez probablement pas copier cela mot pour mot et le faire fonctionner sur une boîte Ubuntu, mais voici le script d'initialisation que j'ai utilisé pour tester cela sur Red Hat. Vous trouverez l'export juste avant la fonction start()
:
#!/bin/sh
#
# crond Démarrer/Arrêter le démon d'horloge cron.
#
# chkconfig: 2345 90 60
# description: cron est un programme UNIX standard qui exécute des programmes spécifiés par l'utilisateur à des intervalles planifiés. vixie cron ajoute un certain nombre de fonctionnalités au cron UNIX de base, y compris une meilleure sécurité et des options de configuration plus puissantes.
### BEGIN INIT INFO
# Fournit: crond crontab
# Nécessaire-Démarrage: $local_fs $syslog
# Nécessaire-Arrêt: $local_fs $syslog
# Démarrage-Par-Défaut: 2345
# Arrêt-Par-Défaut: 90
# Description-Courte: exécute le démon cron
# Description: cron est un programme UNIX standard qui exécute des programmes spécifiés par l'utilisateur
# à des intervalles planifiés. vixie cron ajoute un
# certain nombre de fonctionnalités au cron UNIX de base, y compris une meilleure
# sécurité et des options de configuration plus puissantes.
### END INIT INFO
[ -f /etc/sysconfig/crond ] || {
[ "$1" = "status" ] && exit 4 || exit 6
}
RETVAL=0
prog="crond"
exec=/usr/sbin/crond
lockfile=/var/lock/subsys/crond
config=/etc/sysconfig/crond
# Bibliothèque de fonctions source.
. /etc/rc.d/init.d/functions
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
export TZ=UTC
start() {
if [ $UID -ne 0 ] ; then
echo "L'utilisateur n'a pas suffisamment de privilèges."
exit 4
fi
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Démarrage de $prog : "
daemon $prog $CRONDARGS
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
}
stop() {
if [ $UID -ne 0 ] ; then
echo "L'utilisateur n'a pas suffisamment de privilèges."
exit 4
fi
echo -n $"Arrêt de $prog : "
if [ -n "`pidfileofproc $exec`" ]; then
killproc $exec
RETVAL=3
else
failure $"Arrêt de $prog"
fi
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
}
restart() {
stop
start
}
reload() {
echo -n $"Rechargement de $prog : "
if [ -n "`pidfileofproc $exec`" ]; then
killproc $exec -HUP
else
failure $"Rechargement de $prog"
fi
retval=$?
echo
}
force_reload() {
# la nouvelle configuration prend effet après le redémarrage
restart
}
rh_status() {
# effectuer des vérifications pour déterminer si le service est en cours d'exécution ou utiliser un statut générique
status -p /var/run/crond.pid $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
restart
;;
*)
echo $"Utilisation : $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
exit 2
esac
exit $?