从crontab

时间:2016-03-29 04:00:30

标签: python crontab

我在Raspberry Pi上创建了一个Python 2.7.3程序,用于编写XML文件。当我使用IDLE的F5键运行此程序时,它会运行并输出XML文件。当我通过键入pi@raspberry-pi ~ $python program_name.py提示符下使用LXDE终端运行相同的程序时,它也可以按预期工作并输出XML文件。

现在我想每15分钟刷新一次XML文件,听起来我应该可以使用crontab来做这件事。

所以我开始使用命令crontab -e打开编辑器(nano,在我的情况下)。我输入了以下最后一行:

*/15**** python /home/pi/program_name.py

我还尝试了以下各种变体:

*/15**** sudo python /home/pi/program_name.py

*/15**** python program_name.py

当我退出程序时,我收到错误消息:

"/tmp/crontab.nyQZsu/crontab":23: bad command
errors in crontab file, can't install.

关于我做错的任何想法?

2 个答案:

答案 0 :(得分:3)

cron文件中的小时,分​​钟,月份和其他字段是以空格分隔的。除非你有一个我以前没见过的crontab变体,否则将所有字段塞进一个像“****”这样的blob中是一个语法错误。

从POSIX程序员手册:

  

[...] crontab条目是一个文本文件,每行包含六个字段。字段应以< blank> s分隔。

这就是“crontab文件中的错误命令错误”消息告诉您:您输入的文件***** /bin/echo无效,因此程序拒绝“安装”(接受)它。

为了比较,这是我在尝试安装包含故意虚假行的文件时遇到的错误$ crontab -e crontab: installing new crontab "/tmp/crontab.XXXXe2lUUa":5: bad hour errors in crontab file, can't install. Do you want to retry the same edit? n crontab: edits left in /tmp/crontab.XXXXe2lUUa $

 if (files.toLowerCase().endsWith(".xml"))
             {
                String result = files.substring(0, files.indexOf("_"));
                System.out.println(result);               
              }

答案 1 :(得分:-1)

尝试使用15代替/ 15

此外,如果您希望crontab条目以root用户身份运行,最好将它放在/etc/cron.d/文件中,而不是root用户自己的用户级crontab。