2011-07-22 12 views
1

共有WebサーバーにインストールされているdjangoベースのWebサイトがあります。私は、レポートの作成を自動化し、電子メールを送信するためのcronジョブをほとんど用意しない予定です。共有サーバーのタイムゾーンは "America/New_York"です(共有サーバーなので変更できません)私は "アジア/コルカタ"のタイムゾーンに従ってcronを走らなければなりません。どうすればこれを達成できますか?クリスの答えCrontab:タイムゾーンを設定する

後に更新し

おかげで私は------ test.py ---

$ crontab -e 

TZ=Asia/Kolkata 

#(Accoring to some timezone dt: 21 July 11, time: 20:20) 

20 20 * * * python test.py > test_log.txt 

'アメリカ/ニューヨーク' に私のローカルシステムTZを設定します---

from datetime import datetime as dt 
print dt.now() 

------ test_log.txt ----

2011-07-22 08:42:02.592777 

tz = 'アジア/コルカタ'による時間である。私の質問は、アジア/カルカッタのタイムゾーンに従ってtest.pyスクリプトを実行できますか?

+0

私はcrontabの時間をオフセットすることを提案していましたが、夏時間の使用が組み込まれていると実際にはうまくいかないことに気付きました。 – moberley

+0

それで、唯一の方法は、 crontabエントリ。 – Konstant

+0

datetime.now()の代わりに、datetime.utcnow()とそれに応じてオフセットを考慮してください。詳しくは、http://lucumr.pocoo.org/2011/7/15/eppur-si-muove/を参照してください。 – Kiwi

答えて

1

一つの解決策は、それが右のアジア時間であるかどうかをスクリプトのチェックを持っている場合にのみ継続し、その後、毎時20分でのcronの実行を持っているかもしれませんそうです。

+0

より良いものは見つかりませんでした。これは今私にとって最高の選択肢のようだ。ありがとう:) – Konstant

0

あなたのcrontabに次の行を入れて:

TZ=Asia/Kolkata 
+1

こんにちはクリス。ありがとう、しかし、私が間違っていない場合、これは指定されたタイムゾーン(この場合はアジア/コルカタ)として環境変数を設定します。だから、どんなスクリプト/コマンドでもこのタイムゾーンが使用されます。しかし、スクリプトそのものはサーバーのタイムゾーンに従って実行されるでしょうか? – Konstant

関連する問題