Столкнулся сегодня с ошибкой в работе системного Cron. Текст ошибки совершенно не информативный, так что не понятно, в чем конкретно проблема В итоге нашел решение при проверке /etc/crontab, который использовал для запуска периодических команд.
Началось все с того, что заметил проблемы с очисткой индексов elasticsearch с помощью curator. Он просто ничего не чистил и индексы распухли, заняв почти все место на диске. Пошел в консоль сервера смотреть, в чем проблема. Ручной запуск curator отработал, удалив устаревшие индексы. Стало понятно, что он просто не запускался. В /etc/crontab было правило на регулярный запуск.
Стал смотреть лог cron и нашел там ошибку:
1 |
Jun 3 04:04:01 [localhost] crond[811]: (/usr/bin/curator) ERROR (getpwnam() failed) |
По тексту совершенно не понятно, в чем проблема
Так как использовался системный cron, в нем надо указать имя пользователя, от которого будет работать команда. А я это забыл сделать. Должно быть так:
1 |
4 4 * * * <strong>root</strong> /usr/bin/curator --config /etc/curator/config.yml /etc/curator/action.yml |
Пользователя root я забыл указать, поэтому и была ошибка исполнения