我正在为我的一个项目测试 cronjobs。为此,我制作了一个简单的电报机器人,每分钟给我发送一条消息。
代码如下:
import requests
from datetime import datetime
Token = "Token here"
OWNER_ID = Id here
def send():
send_text="Message sent at : "+str(datetime.now())
telegram_send = f"https://api.telegram.org/bot{Token}/sendmessage?chat_id={OWNER_ID}&text={send_text}"
requests.get(telegram_send)
print("sent at : " , datetime.now())
send()
我的 cronjob 命令是:
* * * * * /usr/bin/python3 /home/anish/cowin/tester.py >> ~/cron.log 2>&1
该机器人每分钟向我发送一条消息,日志文件也记录了这一点:
sent at : 2021-05-26 14:37:02.681277
sent at : 2021-05-26 14:38:02.444642
sent at : 2021-05-26 14:39:02.189234
sent at : 2021-05-26 14:40:01.932228
sent at : 2021-05-26 14:41:02.695751
正如预期的那样,这是我在机器人中收到的内容:
但是当我将cronjob命令改为在下午2点到下午6点之间执行该命令时,程序执行就停止了。
我输入的新命令是:
* 14-18 * * * /usr/bin/python3 /home/anish/cowin/tester.py >> ~/cron.log 2>&1
有人能帮我解决这个问题或者指出我的代码中的任何错误吗?
答案1
我发现 cron 服务没有检测到我的系统时区的变化。
我通过简单地重新启动 cron 服务解决了这个问题
sudo /etc/init.d/cron restart