附加到输出 crontabs 的更好方法

Better method to append to output crontabs

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

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

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

但是我的 crontab 看起来像这样:

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

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

您需要在 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 语法

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

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

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

第三,你的crontab入口是错误的。必须有 5 个字段,而你的有 4 个(可能是打字错误?)