Назад | Перейти на главную страницу

Как изменить тему электронного письма Cronjob

Я выполняю полдюжины различных заданий cron с моего хостинга Hostmonster.com. Когда задание cron выполнено, я получаю электронное письмо с результатами работы скрипта.

Электронное письмо имеет следующий формат:

From: Cron Daemon
Subject: Cron  /ramdisk/bin/php5 -c /home5/username/scheduled/optimize_mysql.bash

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

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

Например:

From: Cron Daemon
Subject: Optimize MySQL Database

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

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

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

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

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

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

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

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

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

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

И с

mail -s 'your subject' adress@where < textfile

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

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

#Optimize_MySQL_Database.sh

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

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

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

/usr/local/bin/php -q /path /hostname/foldername/Page-You-want-to-execute \
   | **mail -s "*SUBJECT*" YOUR@MAIL.COM.**
  • Это просто справочник, который поможет вам