
我的腳本有一個許可系統。我想每 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
已建立以及日期是否每分鐘列印一次。