it-swarm-ru.tech

Как изменить тему электронной почты Cronjob

На моем хостинге на Hostmonster.com я выполняю полдюжины разных заданий cron. После выполнения cronjob я получаю письмо с выводом скрипта.

Письмо приходит в формате:

От: Cron Daemon 
 Тема: Cron/ramdisk/bin/php5 -c /home5/username/scheduled/optimize_mysql.bash

Проблема в том, что тема письма очень затрудняет чтение того, к какому кронжу относится письмо.

Есть ли способ изменить тему письма cronjob, чтобы его было легче читать?

Например:

 От: Cron Daemon 
 Тема: Оптимизация базы данных MySQL 
51
justinl

В моих системах (большинство Debian) все выходные данные из скрипта/программы, называемой crontab-записью, отправляются по электронной почте на [email protected] кто инициировал cron. Эти электронные письма имеют такую ​​же тему, как ваша.

Если вы хотите получить электронное письмо, напишите скрипт, который не имеет выходных данных сам по себе. Но вместо этого поместите весь вывод в текстовый файл.

И с

mail -s 'your subject' [email protected] < textfile

вы получаете это так, как вы хотите.

11
Michèle

Или используйте команду sh noop (:)

0 9-17 * * 1-5    : Queue Summary; PATH=/usr/sbin qshape

Тема все еще выглядит грязной, но, по крайней мере, она носит описательный характер и не требует посторонних сценариев.

56
Anthony

Направьте вывод своей работы cron на почту напрямую, и тогда вы можете заполнить строку темы. 2>&1 Синтаксис отправляет любой вывод ошибки, который в противном случае исчезнет.

mycmd 2>&1 | mail -s "mycmd output" myname
22
Mark Harrison

Возьмите на себя ответственность crond за отправку вывода команды (или нет, если ее нет), отправив вывод и stderr в 'mailx -E'. Например:

0 * * * * your-command 2>&1 | mailx -E -s "Descriptive Subject" $LOGNAME

Опция '-E' в Mailx хороша, потому что, как и сам crond, он не будет отправлять почту, если нет вывода для отправки.

13
Alexis Huxley

Другое решение - написать сценарий оболочки с нужной вам строкой темы, которая вызывает правильную команду. В вашем примере это будет:

#Optimize_MySQL_Database.sh

/ramdisk/bin/php5 -c /home5/username/scheduled/optimize_mysql.bash

Вы можете включить каталог bin в путь, установив его в файле crontab.

2
kbk7173

ПОПРОБУЙТЕ ЭТО - В командной строке внедрите следующий код ---

/usr/local/bin/php -q /path /hostname/foldername/Page-You-want-to-execute \
   | **mail -s "*SUBJECT*" [email protected]**
  • Это просто ссылка, чтобы вести вас
0
sudhu