Как просмотреть результаты заданий cron?

Я вижу так много руководств о том, как запустить crontab, но то, что мне нужно прямо сейчас, чтобы узнать, как

  1. найти файлы журналов о cron заданий
  2. настройки войти
19
задан Zombies
12.01.2023 2:58 Количество просмотров материала 3584
Распечатать страницу

6 ответов

проверить, если программы запускать с помощью cron имеют свои лог-файлы. Если они не записывают свои выходные данные в стандартные выходные данные, вы можете перенаправить их в файлы или отправить их вам по почте. Внутри кронтабе стандартное перенаправление оболочки строительство.

Е. Г. чтобы перенаправить вывод ошибок some_job.sh до some_job.err и отбрасывание стандартного вывода (т. е. отправка его в /dev/null) добавьте следующее перенаправление на crontab

 33 3 * * * /path/to/some_job.sh 1> /dev/null 2> /other/path/to/some_job.err

или отправить его к вам вместо этого (если mail доступно)

 33 3 * * * /path/to/some_job.sh 1> /dev/null 2>&1 | mail -s "cron output" you@example.org
65
отвечен Benjamin Bannier 2023-01-13 10:46

большинство cron демонов на платформах, с которыми я работал, автоматически отправляют stdout/stderr пользовательских заданий cron пользователю, из которого пришло задание crontab. Я забываю, что происходит в системе (не-пользовательские задания из /etc/crontab-файл). Дело в том, что люди не всегда настраивают демон почтовой программы (то есть агент передачи почты (MTA), такой как sendmail, qmail или postfix) на большинстве Unix-подобных ОС. Таким образом, выходные сообщения электронной почты cron просто умирают в локальной почтовой папке, если они даже получают что далеко. Поэтому одним из ответов может быть запуск демона mailer, и, возможно, убедитесь, что у вас есть~/.переслать файл, чтобы переслать вашу местную почту вместе с вашей" реальной " учетной записи электронной почты.

Если вы хотите, чтобы ваша работа писать на конкретные файлы журнала, вы можете использовать стандартный поток вывода перенаправление как @сигналить предложил, или, предположим, ваш хрон-это shell-скрипт, вы могли бы иметь свой скрипт вызов logger(1) или syslog(1) или любой другой инструмент командной строки операционной системы, обеспечивает для отправки произвольные сообщения в syslog. Затем вы можете использовать встроенные методы вашей ОС для настройки того, какие типы сообщений регистрируются где, возможно, редактируя /etc / syslog.конф.

большинство моих заданий cron вызывают скрипты bash, которые я написал специально для запуска cron по определенной причине. В тех, особенно когда я изначально пишу и отлаживаю их, мне нравится использовать "set-vx" bash, чтобы сделать нерасширенную и расширенную форму каждой строки сценария оболочки написано в stdout, прежде чем он запускается на выполнение. Обратите внимание, что скрипты начали из cron не считаются входа, номера-интерактивную оболочку, поэтому стандартные стартовые скрипты, как .bashrc и и .профиль не запущен. Если вы используете bash и хотите, чтобы bash запустил сценарий запуска, вы должны определить переменную среды "BASH_ENV=/path/to/my/startup/script" в вашем crontab перед строкой, где вы определяете задание.

7
отвечен Spiff 2023-01-13 13:03

задачи, которые выполняет cron, отвечают за собственное ведение журнала.

6
отвечен ceejayoz 2023-01-13 15:20

Я думаю, что перенаправление в cron-файле может быть не лучшим вариантом в этом случае.

часто вы хотите, чтобы ведение журнала speification совместно с скрипт cron-задание. В этом случае я предлагаю следующее:

#!/bin/bash
exec &>> capture-log.txt
echo "Running cron-job foo at $(date)"
...
<rest of script>

Это добавляет вывод из задания cron для захвата журнала.txt-файл.

1
отвечен user239558 2023-01-13 17:37

Я предпочитаю получать отчеты по электронной почте о заданиях cron. Просто поставь

MAILTO=yourmail@domain.com

в crontab и вы получите письмо. Конечно, вы должны иметь электронную почту, настроенную для вашей учетной записи.

1
отвечен nobody 2023-01-13 19:54

самый простой способ захватить ошибки печати и сохранить затем в файл. У меня есть cronjob, который вызывает командную строку php, например:

1 0 * * * php/pathOfMyApp / index.php controllerName имя_функции > / pathOfMyApp / log / myErrorLog 2>&1

часть перед ' > 'Это мой cronjob и после' > ' это захват и сохранить в файле, расположенном в папке журнала в корне моего проекта, но может быть в том месте, где вы хотите. Будьте бдительны: каждый раз cronjob будет называться он будет перезапишите последний журнал. Вы можете использовать ' > > 'для записи в конец существующего файла или поиска команды' cat ' терминала.

Если ваш crontab использует 'curl' или' wget ' и ссылается на ссылку, вы можете искать в /var/log/httpd/appName для access-log, если cron возвращается с 500 или 400 должно быть что-то не так.

наконец, вы можете проверить /var / log / messages тоже.

1
отвечен gabriel_lucius 2023-01-13 22:11

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх