每 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已建立以及日期是否每分鐘列印一次。

相關內容