У меня есть настройка, как показано ниже, но ее никогда не выполняются.
$ chmod +x /var/tmp/myscript.sh
$ vim /var/tmp/crontab.sh;
* * * * * sleep(10); /var/tmp/myscript.sh
$ crontab /var/tmp/crontab.sh
Теперь просто заметили, что она не работает. Что я делаю неправильно?
$ grep CRON /var/log/syslog
Nov 28 15:20:01 sun CRON[1768]: (sun) CMD (sleep(10);/var/tmp/myscript.sh)
Nov 28 15:20:01 sun CRON[1766]: (CRON) error (grandchild #1768 failed with exit status 2)
Nov 28 15:20:01 sun CRON[1766]: (CRON) info (No MTA installed, discarding output)
Последующие действия:
$ vim /var/tmp/crontab.sh
* * * * * sleep 10; /var/tmp/myscript.sh>/dev/null 2>&1
$ tail -f /var/log/syslog | grep CRON
Nov 28 15:50:02 sun CRON[2301]: (sun) CMD (sleep 10; /var/tmp/myscript.sh>/dev/null 2>&1)
Nov 28 15:51:01 sun CRON[2312]: (sun) CMD (sleep 10; /var/tmp/myscript.sh>/dev/null 2>&1)
sleep не принимает аргумент в круглых скобках (например, в C), поэтому он должен быть
* * * * * sleep 10; /var/tmp/myscript.sh
Всегда проверяйте команды в системной оболочке перед подачей на cron;) .
На самом деле лучший способ использования crontab - использовать crontab:
crontab -l # list current crontab entries
crontab -e # редактировать таблицу cron [!d2 ]
Как только вы закончите редактирование crontab (через «crontab -e»), он активируется и будет сбрасывать все, что было установлено, когда он был настроен на срабатывание.
Обратите внимание, что машина должна работать для работы crontab. Если вы хотите что-то более гибкое, вы можете посмотреть на anacron (8).