Crontab:设置时区

1 投票
2 回答
3449 浏览
提问于 2025-04-16 22:02

我在一个共享的网络服务器上安装了一个基于Django的网站。我打算设置几个定时任务,来自动生成报告、发送邮件等等。问题是,这个共享服务器的时区是“美国/纽约”(因为是共享服务器,我没有权限去更改它),而我需要按照“亚洲/加尔各答”的时区来运行这些定时任务。我该怎么做呢?

谢谢

在Chris的回答后更新

我把我本地系统的时区设置成了“美国/纽约”

$ crontab -e

TZ=Asia/Kolkata

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

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

------ test.py ------

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

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

2011-07-22 08:42:02.592777 

这是根据时区“亚洲/加尔各答”得到的时间。我的问题是:我们能否按照“亚洲/加尔各答”的时区来执行test.py这个脚本呢?

2 个回答

0

在你的定时任务设置里加上这一行:

TZ=Asia/Kolkata
1

一种解决办法是让定时任务每小时的20分钟时运行,然后让脚本检查一下现在是不是亚洲的正确时间,只有在时间对的时候才继续执行。

撰写回答