D'accord, j'ai pris un peu de temps et j'ai trouvé comment faire cela sur Ubuntu Natty, et voici comment j'ai réussi à le faire fonctionner. Il y a peut-être une manière plus élégante, mais cette méthode fonctionne.
Tout d'abord, nous devons envelopper l'exécutable cron dans un shell qui définit la variable TZ. Voici comment faire :
cd /usr/sbin
mv cron cron.real
Ensuite, créez un nouveau fichier /usr/sbin/cron. J'ai utilisé vim, mais vous pouvez utiliser n'importe quel éditeur que vous voulez, assurez-vous simplement que le fichier ressemble à ceci :
#!/bin/bash
export TZ=UTC
/usr/sbin/cron.real
Rendez le nouveau fichier cron exécutable :
chmod ugo+rx cron
Maintenant, redémarrez le démon cron :
service cron restart
Vos tâches cron s'exécuteront désormais selon un horaire basé sur l'UTC -- CEPENDANT, même si l'heure à laquelle elles sont exécutées sera en UTC, lorsqu'elles s'exécuteront, la timezone sera définie en fonction de ce qui est défini pour le système. Pour changer cela, ajoutez ceci dans votre crontab avant toute commande :
TZ=UTC
Ainsi, votre crontab ressemblera à ceci :
# Éditez ce fichier pour introduire les tâches à exécuter par cron.
#
# Chaque tâche à exécuter doit être définie à travers une seule ligne
# indiquant avec différents champs quand la tâche sera exécutée
# et quelle commande exécuter pour la tâche
#
# Pour définir l'heure, vous pouvez fournir des valeurs concrètes pour
# minute (m), heure (h), jour du mois (dom), mois (mon),
# et jour de la semaine (dow) ou utiliser '*' dans ces champs (pour 'n'importe quand').#
# Notez que les tâches seront lancées en fonction du temps et des fuseaux horaires du système cron.
#
# La sortie des tâches du crontab (y compris les erreurs) est envoyée par
# email à l'utilisateur auquel appartient le fichier crontab (sauf redirigé).
#
# Par exemple, vous pouvez exécuter une sauvegarde de tous vos comptes utilisateur
# à 5h du matin chaque semaine avec :
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# Pour plus d'informations, consultez les pages de manuel de crontab(5) et cron(8)
#
# m h dom mon dow commande
TZ=UTC
00 19 * * * date > /tmp/date.log