Выполнение команд каждые 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создан и дата в нем печатается каждую минуту.

Связанный контент