Вопрос или проблема
Как я могу проверить, включен ли crontab
и работает ли он правильно в Ubuntu?
Я проверил /var/log/cron
, но этот файл пуст.
Если вы хотите узнать, работает ли он, вы можете выполнить что-то вроде sudo systemctl status cron
или ps aux | grep cron
.
Если вы хотите узнать, работают ли ваши задания cron, проверьте /var/log/syslog
с именем процесса cron. Например:
Apr 26 21:17:01 example CRON[18055]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
- измените конфигурацию
rsyslog
: откройте/etc/rsyslog.d/50-default.conf
, уберите#
передcron.*
- перезапустите службу rsyslog:
sudo service rsyslog restart
- перезапустите службу cron:
service cron restart
теперь вы можете проверить журнал cron из файла /var/log/cron.log
По умолчанию журнал cron в Ubuntu находится по адресу /var/log/syslog
. Используйте следующую команду, чтобы проверить записи cron в этом файле.
grep cron /var/log/syslog
Новая информация на 2020 год: cron теперь является службой systemctl, поэтому вы можете получить журналы cron / anacron с помощью:
journalctl -u cron.service
если вы установили anacron, то это так же работает с:
journalctl -u anacron.service
(anacron предназначен для настольных ПК, когда ваш компьютер не гарантированно всегда включен. Он обеспечивает выполнение ежедневных заданий, даже если ваш компьютер был выключен в 5:00, когда компьютер запускается).
Ответ или решение
Чтобы проверить логи cron в Ubuntu, выполните следующие действия. Во-первых, убедитесь, что служба cron активна и работает должным образом. Далее представлено подробное руководство по проверке cron и его журналов в Ubuntu.
Шаг 1: Проверка состояния службы cron
Для начала, откройте терминал и выполните команду:
sudo systemctl status cron
Эта команда покажет вам текущее состояние службы cron. Если служба активна, вы увидите сообщение с информацией о том, что cron работает. Если она не активна, вы можете запустить её с помощью команды:
sudo systemctl start cron
Также можно проверить, запущена ли служба cron, с помощью следующей команды:
ps aux | grep cron
Эта команда покажет вам все процессы, связанные с cron. Если вы видите строки, относящиеся к cron, это значит, что служба работает.
Шаг 2: Проверка логов cron
По умолчанию логи cron в Ubuntu записываются в файл /var/log/syslog
. Чтобы отфильтровать эти записи и увидеть только записи, относящиеся к cron, используйте следующую команду:
grep cron /var/log/syslog
Эта команда отобразит все строки в системном журнале, которые содержат упоминание cron, что позволит вам отслеживать выполнение ваших задач.
Шаг 3: Включение отдельного файла логов для cron
Если вы хотите, чтобы логи cron записывались в отдельный файл (/var/log/cron.log
), выполните следующие действия:
-
Измените конфигурацию rsyslog. Откройте файл конфигурации
50-default.conf
редактором текста с правами администратора:sudo nano /etc/rsyslog.d/50-default.conf
Найдите строку, начинающуюся с
#cron.*
и удалите символ#
в начале строки, чтобы она выглядела так:cron.* /var/log/cron.log
-
Перезапустите службу rsyslog:
sudo service rsyslog restart
-
Перезапустите службу cron:
sudo service cron restart
Теперь логи cron будут записываться в файл /var/log/cron.log
. Вы можете проверить этот файл с помощью команды:
cat /var/log/cron.log
Дополнительный способ: Использование journalctl
С учетом того, что cron теперь является службой systemd, вы также можете просматривать логи cron с помощью команды journalctl
. Чтобы просмотреть логи именно для cron, выполните следующий запрос:
journalctl -u cron.service
Если на вашем компьютере установлен anacron (что рекомендуется для систем, которые не всегда включены), вы можете просмотреть его логи за счет следующей команды:
journalctl -u anacron.service
Заключение
Следуя приведенным выше шагам, вы сможете настроить и просматривать логи cron в Ubuntu, что поможет вам эффективно отслеживать выполнение запланированных задач. Убедитесь, что вы регулярно проверяете состояние cron и логи, чтобы избежать возможных проблем с автоматизацией задач.