Где находится журнал cron / crontab?
Я хочу убедиться, что моя работа cron выполняется и в какое время. Я считаю, что есть журнал для моей sudo crontab -e работы, но где?
Я искал в Google и нашел рекомендации для поиска /var/log (в котором я ничего не вижу с «cron» в названии) и для редактирования файла, /etc/syslog.conf которого у меня тоже нет.
При установке по умолчанию задания cron регистрируются в
Вы можете увидеть только задания cron в этом лог-файле, запустив
Если вы ничего не перенастроили, записи будут там.
Вы можете создать файл cron.log, содержащий только записи CRON, которые отображаются в системном журнале. Обратите внимание, что задания CRON по-прежнему будут отображаться в системном журнале, если вы будете следовать следующим указаниям.
Найдите строку, которая начинается с:
раскомментируйте эту строку, сохраните файл и перезапустите rsyslog:
Теперь вы должны увидеть файл журнала cron:
Активность Cron теперь будет регистрироваться в этом файле (в дополнение к syslog).
Обратите внимание, что в cron.log вы увидите записи о том, когда cron запускал скрипты в /etc/cron.hourly, cron.daily и т. Д. — например, что-то вроде:
Однако вы не увидите больше информации о том, какие сценарии фактически выполнялись внутри /etc/cron.daily или /etc/cron.hourly, если только эти сценарии не направляют вывод в cron.log (или, возможно, в какой-либо другой файл журнала).
Если вы хотите проверить, работает ли crontab и не нужно искать его в cron.log или syslog, создайте crontab, который перенаправляет вывод в файл журнала по вашему выбору — что-то вроде:
Это перенаправит все стандартные выходные данные и ошибки, которые могут возникнуть в сценарии, который выполняется, в указанный файл журнала.
Выполнение заданий через CRON в Linux
Admin
18.05.2017 , обновлено: 28.05.2022
Bash, CentOS, Linux, VPS
CRON – это планировщик заданий в Linux, который запускает выполнение скриптов по заданному расписанию.
Пример CRON задания
Добавление задания в CRON
В операционной системе Cent OS (Linux) файл, отвечающий за выполнение заданий, лежит по такому пути: /etc/crontab.
Для редактирования общего крона на сервере вводим консольную команду:
Для альтернативного внесения в cron — для каждого отдельного пользователя — смотрите ниже.
Исполняемые файлы имеют расширение sh. В начале файла принято записывать:
Как просмотреть логи в CRON
Если добавленное в CRON задание не выполняется, можно проверить ошибки в логах.
Скрипт лежит в папке my_scripts и называется backup_webdav_day.sh. Для просмотра логов CRON
По умолчанию он имеет такой вид:
Команда означает, что скрипт будет запускаться в 2 часа каждую ночь.
Предположим, что выполнение команды не работает, нам нужно понять, почему так происходит. Изменяем в файле backup_webdav_day.sh данные скрипта, чтобы тот записывал ход выполнения работы в специальный лог файл, который будет создан в той же директории. И меняем время на ближайшее, допустим сейчас 16.00 и мы хотим узнать, будет ли работать скрипт. Тогда делаем его выполнение через 5 минут.
Ждём пока не наступит 16.05, а затем смотрим что показывает файл backup_webdav_day.log.
CRON отказано в доступе / Permission denied
Если скрипт не будет выполняться, то в логах файла вы увидите соответствующую ошибку. Например, в ошибке может находиться такая информация:
Это означает, что в операционной системе Linux, нет прав доступа к файлу. В этом случае файлу backup_webdav_day.sh присваиваем права доступа на исполнение – chmod +x:
После этого данная ошибка должна исчезнуть.
Альтернативное изменение cron в Ubuntu
Иногда изменение файла /etc/crontab напрямую не даёт результата.
Также этот способ добавления заданий в cron считается более надёжным. Задания добавляются конкретному пользователю.
Where cron logs are stored on your server
The cron daemon does it’s work in the background, reading crontab files and running jobs on schedule, and the logs it writes are helpful for debugging and auditing your cron jobs. Most versions of cron will log when jobs run and whether there are any errors with your crontab. They do not log cron job output or exit statuses. (For that, use Cronitor).
Stop searching for logs
Finding cron logs on Ubuntu and Debian
On Ubuntu, Debian and related distributions, you will find cron jobs logs in /var/log/syslog . Your Syslog contains entries from many operating system components and it’s helpful to grep to isolate cron-specific messages.
You will likely require root/sudo privileges to access your Syslog.
Finding cron logs on CentOS and Redhat
On CentOS, Redhat and Amazon Linux cron logs are written to /var/log/cron .
You will likely require root/sudo privileges to access your cron logs.
Deciphering your cron job logs
Cron logs store the time the job was started, the user account used, and the command run. In this example, a data-pipeline.py cron job ran on March 29th, on the data-processing host as the dataproc user.
As valuable as cron logs are they can’t tell you what cron jobs didn’t run. Monitor your cron jobs with Cronitor to easily collect output, capture errors and alert you when something goes wrong. Learn about cron monitoring.
Related Guides
Configuring cron with environment variables
The 5 places cron jobs are saved
List all cron jobs for all users
What to do when your cron job is not working
What is the cron job working directory
Cronitor automatically finds and monitors cron jobs. Complete your setup in minutes.