Единственный надежный способ, который я нашел, это проверить журнал.
cron
проверяет /etc/crontab
каждую минуту и регистрирует сообщение, указывающее, что оно перезагрузило его или обнаружило ошибку.
Итак, после редактирования запустите это:
sleep 60; grep crontab /var/log/syslog | tail
Или не ждать целую минуту, а только до следующей минуты + 5 секунд:
sleep $(( 60 - $(date +%S) + 5 )) && grep cron /var/log/syslog | tail
Пример вывода с ошибкой:
Jan 9 19:10:57 r530a cron[107258]: Error: bad minute; while reading /etc/crontab
Jan 9 19:10:57 r530a cron[107258]: (*system*) ERROR (Syntax error, this crontab file will be ignored)
Хороший выход:
Jan 9 19:19:01 r530a cron[107258]: (*system*) RELOAD (/etc/crontab)
Это на Debian 8. В других системах cron может войти в другой файл.
(Я думал, что смогу избежать поиска правильного файла журнала, используя systemd journalctl -u cron
, но это не показывало мне эти записи журнала, и фактически почему-то прекратило регистрировать события cron 2 дня назад по какой-то причине)