更好的方法来附加输出crontabs

时间:2016-04-18 10:15:47

标签: sh crontab

所以我有简单的shell命令来ping网站以检索有关所述网站的数据。

例如我的一个pinging.sh看起来像这样:

ping -R -c 120 blar.org.cn >> pingdata.txt
ping -R -c 120 another.net >> pingdata.txt

然后我的crontabs看起来像这样:

7 * * * ./pinging.sh >> pingdata.log 

pingdata.log没有输出。最好通过crontab或脚本来完成吗?我认为crontab会更好,因为它会覆盖整个脚本而不必多次写出来。

2 个答案:

答案 0 :(得分:0)

您需要在cronjob中指明脚本的完整路径,以及运行它的二进制文件。

例如:

7 * * * * /bin/sh /home/you/pinging.sh >> /home/you/pingdata.log

另请注意,您只需向cronjob添加4个参数,而您至少需要5个:

 +---------------- minute (0 - 59)
 |  +------------- hour (0 - 23)
 |  |  +---------- day of month (1 - 31)
 |  |  |  +------- month (1 - 12)
 |  |  |  |  +---- day of week (0 - 6) (Sunday=0 or 7)
 |  |  |  |  |
 *  *  *  *  *  command to be executed 

您可以使用Crontab guru(---> http://crontab.guru/)测试您的cron语法。

答案 1 :(得分:0)

首先,必须在cron中将可执行文件作为完整路径提供。 例如:

7 * * * *  /bin/bash /path/to/pinging.sh

其次,为 pinging.sh>>创建包装脚本。 pingdata.log 并将其添加到crontab。

第三,你的crontab条目是错误的。必须有5个字段,而你的有4个字段(也许这是一个错字?)