Calendrier Crontab dans différents fuseaux horaires

18

Je voudrais planifier mes tâches dans EST, mais je veux que la tâche réelle s'exécute sous le fuseau horaire par défaut du système.

Quelle est la meilleure façon de procéder?

DD.
la source

Réponses:

25

Il suffit de définir dans votre fichier crontab la variable TZ = Some / Where Vous pouvez définir TZ plusieurs fois pour que les tâches soient exécutées séparément dans des fuseaux horaires distincts. Par exemple:

TZ=UTC
* 7 * * * root date | mail root
TZ=CEST
* 7 * * * root date | mail root
TZ=PCT
* 7 * * * root date | mail root

à 7:00 UTC (ou fuseau horaire exécuté par le démon cron), trois jobs seront exécutés, mais chacun aura sa propre variable TZ.

datacompboy
la source
+1 ne le savait pas - assez utile.
Coops
+1 un très bon conseil!
Janne Pikkarainen
Je veux qu'ils fonctionnent tous dans le même fuseau horaire mais à des moments différents!
DD.
Agh, le démon cron qui connaît lui-même la variable TZ est déjà là: blogs.oracle.com/chrisg/entry/…
datacompboy
2
Je ne vois rien dans la question qui indique que l'environnement était OpenSolaris ... Vixie cron dit spécifiquement que cela ne fonctionne pas .
womble
14

Dans la version CENTOS de cron, ajoutez simplement la ligne: CRON_TZ = America / New_York

Cela exécutera la planification en fonction de l'heure de New York, mais la tâche s'exécutera dans le fuseau horaire par défaut.

DD.
la source
Merci pour l'astuce sur le fuseau horaire par défaut. Il nécessite que vous ajoutiez une variable TZ dans chaque ligne de la crontab, si vous voulez que la tâche cron s'exécute également dans le fuseau horaire de l'Est, par exemple:export TZ=America/New_York; unix_command; next_cmd_in_sequence
Mike S
1
Je veux juste mentionner que vous pouvez avoir plusieurs paramètres CRON_TZ dans un seul crontab - très utile. :)
Lester Cheung
0

Vous pouvez exécuter une instance distincte de cron avec une TZvariable d'environnement différente , ou simplement apprendre à ajouter ou à soustraire quelques heures.

womble
la source
2
Ouais ... ce n'est pas vraiment aussi simple avec les changements d'heure d'été qui se produisent à différents moments dans différents fuseaux horaires. Je pensais que la variable d'environnement TZ signifierait que le processus s'exécute dans un autre TZ?
DD.
Oui, et le processus qui a les différents TZ est crond.
womble
comment puis-je faire fonctionner le service crond dans une autre TZ? Désolé, je suis un débutant unix.
DD.