我在cent-OS服务器上工作。 我有两个脚本来运行cron。 脚本是在PHP中,我有一个Apache模块安装在cent-OS上。 一个脚本应该每天下午6点运行,其他每个星期四运行。 我的cron命令是:
00 18 * * * lynx -dump http://domain/folder1/script1.php //every Day 00 02 * * 5 lynx -dump http://domain/folder1/script2.php //every Thursday at 2am
我写了我的/etc/crontab文件中的两行,并试图执行它
[root@domain ~]# /etc/crontab crontab -bash: /etc/crontab: Permission denied
在网上search,但没有解决scheme。 任何想法我失踪?
crontab不是一个可执行文件。 cron使用它来知道什么时候应该安排工作。
/etc/crontab不可执行(因此错误)
您的crontab文件无效(不允许使用C或Java风格的注释):
从手册页:
第一个非空格字符是井号(#)的行是注释,并且被忽略。 请注意,注释与cron命令不在同一行,因为它们将被视为命令的一部分。 同样,不允许在环境variables设置的同一行注释。
你应该写这样的东西:
# every day 0 18 * * * lynx -dump http://domain/folder1/script1.php > /tmp/somefilename
请注意, lynx -dump只会将页面打印到标准输出。 如果你想把它存储在某个地方,你需要将输出redirect到一个文件(参见示例)
看看它的工作是否等到00:18,或者为了testing的目的使用更近的时间
任何想法我失踪?
不多。 你在一个错误的城市进了一扇错误的门,在一个错误的日子与一个错误的人交谈。 除此之外,一切都如预期。 😉
1)你不应该通过在行尾附加//评论你的crontab行。 相反,像这样做:
# every day 00 18 * * * lynx -dump http://domain/folder1/script1.php # every Thursday at 2am 00 02 * * 5 lynx -dump http://domain/folder1/script2.php //every Thursday at 2am
2)您计划每天在18:00和每周四凌晨2点运行任务。 如果你试图在这些时间窗口以外的地方运行crontab,cron只会检查它是否有事情做,如果没有,它就会退出。
3)如果cron试图在预定的时间内运行你的脚本,你是否从/var/log/cron检查过?
4)克伦对path很挑剔。 尝试提供一个完整的lynx pathpath,很可能在你的情况下/usr/bin/lynx 。
5)正如别人所说, /etc/crontab只是一个文本文件,而不是一个可执行文件。 Cron守护进程将检查/etc/crontab和每个用户cron文件的内容,并执行一些操作,如果是的话。