我有运行良好的 Python 脚本。我想每 10 分钟将其作为 cron 作业运行一次
我已经完成crontab -e
并进入了队列
*/10 * * * * root python /path/to/script/script.py
它似乎没有运行。
所以我在命令行上玩了一会儿,看看它在什么时候停止运行。它在自己的目录中运行,并在它前面的所有目录中运行,直到我离开我的主目录(例如,如果我在里面/home/henry/
,它就会运行,但如果我在里面,/var
它就不会运行),当我尝试写入文件时出现权限错误。
# save this for next time
with open(mycsvfile, "w") as outfile:
writer = csv.writer(outfile)
writer.writerows([s.strip().encode("utf-8") for s in row ]for row in list_of_rows)
outfile.close()
我已经chmod +x /home/user/Location/Of/Script
确保脚本具有访问权限(我认为)。我还遗漏了什么?感谢您的帮助
答案1
删除字符串root
(假设在定义的python
中存在,否则使用绝对路径例如):cron
PATH
/usr/bin/python
*/10 * * * * python /path/to/script/script.py
*/10 * * * * /usr/bin/python /path/to/script/script.py
为什么:
当您使用
crontab -e
打开 cron 表时,您正在打开调用用户的crontab
,不允许使用用户名字段(与/etc/crontab
和不同/etc/cron.d/*
)就目前情况而言,您正在使用
root
参数运行命令(可能不可用)python
和/path/to/script/script.py
此外,如果你已使脚本可执行,则应添加指示脚本解释器的 shebang(例如/usr/bin/python
),而不是将脚本作为解释器的参数运行。然后你可以执行以下操作:
*/10 * * * * /path/to/script/script.py