我在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.
关于我做错的任何想法?
答案 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。