每 5 分钟运行一次命令

每 5 分钟运行一次命令

我的脚本有一个许可系统。我想每 5 分钟检查一次是否有许可证。

我已将我的添加licensechecker.sh到 crontab 中,如下所示;

*/5 * * * * sh /path/to/file/licensechecker.sh

但似乎不起作用。我已经用以下方法测试过了:

*/1 * * * * reboot

但是我的 VPS 没有重启。

我检查过日志:

Sep 3 15:42:01 eyup CRON[23368]: (root) CMD (reboot) 
Sep 3 15:42:01 eyup CRON[23366]: (CRON) info (No MTA installed, discarding output) 
Sep 3 15:43:01 eyup CRON[23675]: (root) CMD (reboot) 
Sep 3 15:43:01 eyup CRON[23674]: (CRON) info (No MTA installed, discarding output) 
Sep 3 15:44:01 eyup CRON[24023]: (root) CMD (reboot) 
Sep 3 15:44:01 eyup CRON[24022]: (CRON) info (No MTA installed, discarding output) 
Sep 3 15:45:01 eyup CRON[24336]: (root) CMD (reboot)

答案1

Cron 不使用用户的 PATH,它有自己的硬编码$PATH变量设置为/usr/bin:/bin。因此,只有存储在这两个目录之一中的命令才可以通过名称运行。对于所有其他目录,您需要可执行文件的完整路径。由于您的reboot命令位于 中/sbin,因此您需要此行:

*/1 * * * * /sbin/reboot

但是,这实际上不是一种好的测试方法,因为一旦它起作用,您将很难删除此行,因为您的机器每分钟都会重新启动。您可以改用这样的安全命令进行测试:

*/1 * * * * /bin/date > /tmp/date.log

然后只需检查文件/tmp/date.log是否创建并且每分钟是否打印日期。

相关内容