web-dev-qa-db-ja.com

別のタイムゾーンでのcronジョブ

特定のタイムゾーンのcronジョブを設定する方法はありますか?

私の共有ホスティングは米国(バージニア州)にあり、私は英国にいます。 cronジョブを毎週金曜日の1600時間に実行するように設定すると、バージニアで1600時に実行されます。

どのタイムゾーンを選択するかを理解できるようにcronジョブを設定できるかどうか疑問に思いました。夏時間の違いはあまり気になりません。

共有ホスティングプロバイダーにそれについて尋ねたところ、いくつかのcron iniファイルでタイムゾーンを設定できるはずだと言われましたが、見つかりませんでした。

13
nasaa

確認すべきだと思います

/etc/default/cron

または単に入力します

Crontab cronfile

そしてあなたは見つけるべきです

TZ=UTC

これは変更する必要があります(たとえば、America/New_York)。 2番目の方法はcronの例で設定されています

5 2 3 * * TZ="America/New_York" /do/command > /dev/null 2>&1
7

CentOS6サーバーのCRON_TZから抜粋したman 5 crontab環境変数を使用できます。

CRON_TZは、cronテーブルに固有のタイムゾーンを指定します。ユーザーは、指定されたタイムゾーンの時間内に選択されたテーブル時間を入力します。ログへの時間は、デーモンが実行されているローカルタイムゾーンから取得されます。

したがって、これをcronエントリの先頭に追加すると、次のようになります。

CRON_TZ=Europe/London

あなたは良いはずです。

8
AlexT

特定のcronジョブに異なるタイムゾーンを設定する場合は、ssh経由でcrontab -eを実行して追加します

TZ=Europe/Moscow

すべてのcronジョブの前。

記事全文はこちら

3
Tural Ali

AlexTの答えを拡張するには:

CRON_TZ="Europe/London"

答えです。

p.s. GoDaddyのタイムゾーンの修正を探している人がいる場合は、...

export TZ="Europe/London"

... .bashrcで、コンソールがタイムゾーンで実行されるようにします。

1
admin0389