5

Я закомментировал строку в crontab на сервере Debian, которая, по-моему, была там по умолчанию, но заставляла меня каждый час получать сообщения об ошибках:

# m h dom mon dow user  command
17 *   * * *   root    cd / && run-parts --report /etc/cron.hourly

Однако сообщения об ошибках продолжают поступать так, как если бы они не были закомментированы. Сообщения об ошибках:

Subject: Cron <root@(none)> root    cd / && run-parts --report /etc/cron.hourly (failed)
/bin/sh: root: not found

Есть идеи?

2 ответа2

5

Когда вы говорите "crontab", вы не конкретны. Вы должны сказать, что вы имеете в виду. Однако, в зависимости от содержимого, это выглядит как /etc/crontab . Поскольку в этом файле есть пользовательское поле, не имеет смысла, что вы получите эту ошибку. Держу пари, что есть пользовательский crontab, в котором есть эта строка. Пользовательские crontabs не содержат пользовательских полей.

Нужно не менять эту строку в /etc/crontab . Там могут быть другие работы, которые он выполняет.

Вы можете редактировать этот файл и файлы в подкаталогах /etc/cron.* используя любой редактор. Вы можете указать редактор, который хотите использовать при использовании crontab -e , установив переменную среды EDITOR .

Вы должны использовать crontab -e для редактирования пользовательских crontabs (включая root). Удалите пользовательское поле или удалите эту строку в пользовательском crontab, где он появляется (не /etc/crontab). Пользовательские crontabs не имеют пользовательского поля, но системные crontabs имеют.

Пользовательские crontabs находятся в /var/spool/cron/crontabs . Вы можете использовать sudo grep для строки, чтобы узнать, какой файл имеет беспорядочную строку. Опять же, используйте только crontab -u username -e для редактирования пользовательского crontab.

2

Проверьте man-страницу вашей системы на наличие crontab(5) (man 5 crontab), особенно в разделе «ПРИМЕР СИСТЕМНОГО КРОНА-ФАЙЛА». Только файл /etc /crontab содержит поле имени пользователя. Несистемные пользовательские crontabs не включают это поле. Если вы хотите отредактировать /etc /crontab, используйте текстовый редактор, а не команду crontab(1).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .