
私のスクリプトにはライセンス システムがあります。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
。したがって、これら 2 つのディレクトリのいずれかに格納されているコマンドのみを名前で実行できます。その他すべてについては、実行可能ファイルへのフル パスが必要です。reboot
コマンドは にあるため/sbin
、次の行が必要です。
*/1 * * * * /sbin/reboot
ただし、この行が機能すると、マシンが毎分再起動されるため、この行を削除するのは非常に困難になるため、これは実際には良いテスト方法ではありません。代わりに、次のような安全なコマンドを使用してテストできます。
*/1 * * * * /bin/date > /tmp/date.log
そして、ファイル/tmp/date.log
が作成され、そこに毎分日付が印刷されていることを確認します。