Куда идет вывод заданий `at` и` cron`?

9

Куда идет стандартный вывод atи cronзадачи, если нет экрана для отображения?

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

Как я мог на самом деле понять это, учитывая, что я не знаю, как отлаживать или отслеживать фоновую работу?

Майкл Даррант
источник
Вывод обычно отправляется по электронной почте.
Успехов
Я рекомендую использовать mutt, «маленький, но очень мощный текстовый почтовый клиент», чтобы прочитать вывод. Это было в репозиториях для каждого дистрибутива, который я использовал.
kwarrick

Ответы:

10

Со страницы руководства cron:

При выполнении команд любой вывод отправляется по почте владельцу crontab (или пользователю, указанному в переменной окружения MAILTO в crontab, если таковой существует). Дочерние копии cron, выполняющие эти процессы, имеют имя, приведенное к верхнему регистру, как будет видно из вывода syslog и ps.

Поэтому вы должны проверить почту вашего / root или системный журнал (например, / var / log / syslog).

Яри ​​Лааманен
источник
На моем Mac после простого вызова «cron» он отображал путь к «электронной почте». В моем случае это был / var / mail / <username>.
Седрик Гиймет
4

Для длительных процессов иногда полезно знать, что выводится до того, как вы получите электронное письмо, вместо этого я использую это:

  1. Используйте, psчтобы найти идентификатор процесса вашей работающей программы ( PID ниже);
  2. используйте lsofдля поиска файла, в который записывается вывод:

    lsof -p PID
    

В выходных данных , искать 1uи 2uлинии под FDзаголовком столбца.

Эти строки сообщат вам, во какие временные файлы передаются выходные данные процесса до его отправки по почте. Как правило, для at, файл находится в /var/spool/cron/atjobs/. Наконец, отобразите этот файл, и вы найдете (текущий) вывод процесса.

Габриэль Г
источник
файлы в 1uи 2uимеют тип UNIX. Я предполагаю, что это сокеты UNIX. Как мне посмотреть файлы сейчас?
Капад