如何让cron以root身份运行python脚本?

Pau*_*aul 3 root cron

如何cron以 root 身份运行 python 脚本?这是我的 crontab 文件:

0 * * * * ./twitter/twitter.py
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?

Gil*_*il' 11

如果那是 root 的 crontab(用sudo crontab -u root -esu -c 'crontab -u root -e'或类似的方式编辑),那么./twitter/twitter.py将每小时运行一次。如果这是系统 crontab ( /etc/crontab),则在星号后需要第六个字段:0 * * * * root …。我建议使用 root 用户的 crontab 并将系统 crontab 留给系统。

./twitter/twitter.py从当前目录开始。Cron 无法猜测您希望当前目录是什么:您从未告诉过它。将此更改为使用脚本的绝对路径,例如/home/paul/scripts/twitter/twitter.py.

您需要确保twitter.py#!/usr/bin/env python(我假设它是一个 Python 脚本)开头并且python在 cron 的默认值中PATH(这将取决于您的 unix 品牌;您可以确定它/usr/bin在默认值中PATH,但是如果您的python住在其他地方,例如/usr/local/bin,您可能需要PATH=/usr/local/bin:/bin:/usr/bin在 crontab 顶部添加一行)。

还要确保脚本是可执行的 ( chmod +x …/twitter.py)。