2008-09-04 4 views
9

Я знаю, что поведение по умолчанию cron заключается в отправке нормального и ошибки вывода в локальный почтовый ящик владельца cron.Какие параметры доступны для получения результатов cron и как их настроить?

Есть ли другие способы получить результаты тезисов (например, отправить их по электронной почте кучам людей, где-то их хранить и т. Д.)?

ответ

5

Вы можете швырнуть Перенаправление файла на любой команду, показанной или фактическую команду в кронтабе для обоего стандартного вывода и стандартного потока ошибок - как command > /tmp/log.txt 2>&1.

Если вы хотите, чтобы несколько пользователей получили этот журнал, вы можете вставить MAILTO=nameofmailinglist в начало вашего cron-файла.

4

Линия cron аналогична любой другой командной строке unix, поэтому вы можете перенаправить вывод в другую программу. То есть.

* * * * * /path/my/command > /my/email/script 2&>1 
+4

Я думаю, вы имели в виду | вместо>. Использование> будет записывать вывод в файл. – bmb 2008-09-14 01:57:19

4

Это может быть ненужным дополнением, но квалифицировать перенаправление команд:

> перенаправляет стандартный вывод

2 является Bourne Shell конкретного термина, который означает, что стандартная ошибка

1 представляет собой Борна оболочка конкретный термин, который означает стандартный выход

2> & 1 означает перенаправление стандартной ошибки на стандартный выход

Также смотрите следующую полезную статью Standard Input and Output Redirection

+0

2 и 1 - это не только специфическая оболочка Бурна. – 2008-09-17 22:46:30

+2

фактически 2> & 1 означает дубликат stderr на stdout. вот почему «2> & 1> my_file» дает очень разные результаты для «> my_file 2> & 1" – 2008-09-17 22:49:14

7

Чтобы отправить вывод на другой адрес электронной почты просто добавьте строку

MAILTO="[email protected]" 

Для кронтаб перед командой

2

Насколько я понимаю вас У нас есть три варианта:

  1. Перенаправить вывод: либо в файл, либо в программу, которая отправит вам по электронной почте результаты по вашему желанию
  2. Используйте MAILTO в cron и перенаправьте электронное письмо на любой другой адрес для всех ваших заданий cron.
  3. Выполняйте перенаправление на своем почтовом сервере или клиенте после отправки cron.