如何设置权限以便作业从 cron 运行

如何设置权限以便作业从 cron 运行

我有运行良好的 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中存在,否则使用绝对路径例如):cronPATH/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

相关内容