2017-04-08 48 views
-2

我试图找出为什么我的crontab没有运行我的Python脚本Python脚本,我怀疑这是因为我有参数:crontab的运行与参数

这是什么样子:

0  3  * * * root /usr/bin/python && /usr/bin/python -q /root/tools/script.py parm1 parm2 2>&1 >>/var/log/python-tools.log 

所以基本上我可以在终端运行以下命令:

$ python script.py parm1 parm2 

但是当我在crontab以上线试它不工作

+0

为什么在开头有'/ usr/bin/python &&'? – Barmar

+0

我无法在Python文档中找到'-q'选项。它应该做什么? – Barmar

+0

您是否检查过root用户的电子邮件以查找来自'cron'的错误消息? – Barmar

回答

1

-qpython的无效参数。在它之前你不应该有/usr/bin/python &&

0 3 * * * root /usr/bin/python /root/tools/script.py parm1 parm2 2>&1 >>/var/log/python-tools.log 
1

首先,这个脚本是否必须从根目录运行?这通常是一个坏主意。

其次使用& &,这意味着它将与成功退出前仅当命令后运行的命令,因为在第一个命令你只运行蟒蛇,它实际上没有做任何事情,你是不可能得到的以成功代码退出。

+0

它正在写入'/ var/log'中的日志文件,这通常需要root权限。 – Barmar

+0

您可以更改该特定日志文件的权限吗?或者也许使用另一个不需要root的位置和日志文件?这样你就不需要整个脚本的根目录 –

+0

他的脚本也位于'/ root/tools'中。我的猜测是该脚本正在执行一些系统维护任务。 – Barmar