Python : python-crontab 不执行
Python : python-crontab does not execute
我想让 crontab 每分钟执行 python 脚本,但好像 crontab 根本不执行脚本。
这是我创建 crontab 作业的 python 文件。
schedule.py
from crontab import CronTab
def main():
my_cron = CronTab(user='jelly')
cmd = '.venv/bin/python Users/jelly/PycharmProjects/test/writeDate.py'
job = my_cron.new(cmd, comment='test')
job.minute.every(1)
my_cron.write()
print(my_cron.render())
if __name__ == "__main__":
main()
这是我 运行 schdule.py
时的消息
* * * * * .venv/bin/python Users/hyun/PycharmProjects/test/writeDate.py # test
这是应该执行的脚本
import datetime
with open('dateInfo.txt', 'a') as outFile:
outFile.write('\n' + str(datetime.datetime.now()))
当我进入终端并输入命令行时
ps aux | grep cron
我可以看到这样的消息
root 47903 0.0 0.0 2460724 1696 ?? Ss 6:28PM 0:00.31 /usr/sbin/cron
jelly 71389 0.0 0.0 2432804 1380 s003 R+ 12:00PM 0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn cron
此消息有时显示 R+,有时显示 S+,所以我假设 crontab 正在 运行ning,但我找不到任何应该在目录中创建的新 txt 文件。我想知道是哪里出了问题,我该如何解决。
问题出在 python 的路径上。 cron 运行环境受限,所以它不知道 .venv/bin/python 和 Users/jelly/PycharmProjects/test/writeDate.py 在哪里
您必须使用 absoulte paths
我想让 crontab 每分钟执行 python 脚本,但好像 crontab 根本不执行脚本。
这是我创建 crontab 作业的 python 文件。
schedule.py
from crontab import CronTab
def main():
my_cron = CronTab(user='jelly')
cmd = '.venv/bin/python Users/jelly/PycharmProjects/test/writeDate.py'
job = my_cron.new(cmd, comment='test')
job.minute.every(1)
my_cron.write()
print(my_cron.render())
if __name__ == "__main__":
main()
这是我 运行 schdule.py
时的消息* * * * * .venv/bin/python Users/hyun/PycharmProjects/test/writeDate.py # test
这是应该执行的脚本
import datetime
with open('dateInfo.txt', 'a') as outFile:
outFile.write('\n' + str(datetime.datetime.now()))
当我进入终端并输入命令行时
ps aux | grep cron
我可以看到这样的消息
root 47903 0.0 0.0 2460724 1696 ?? Ss 6:28PM 0:00.31 /usr/sbin/cron
jelly 71389 0.0 0.0 2432804 1380 s003 R+ 12:00PM 0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn cron
此消息有时显示 R+,有时显示 S+,所以我假设 crontab 正在 运行ning,但我找不到任何应该在目录中创建的新 txt 文件。我想知道是哪里出了问题,我该如何解决。
问题出在 python 的路径上。 cron 运行环境受限,所以它不知道 .venv/bin/python 和 Users/jelly/PycharmProjects/test/writeDate.py 在哪里 您必须使用 absoulte paths