Когда крон завершается, Как получить уведомление по электронной почте и войти в систему файл (оба)

Я - Новичок к Linux. Я пытаюсь выяснить вещи. Кто-то может любезно помочь мне, как объединить эти две команды?

(1) Обычно крон может, результаты могут быть направлены к файлу журнала путем редактирования crontab в ниже способа

*/10 * * * * /scripts/mysc.sh >> /home/ara/Desktop/test/log.txt 2>&1 

(2) и в случае, если нам нужны результаты крона, чтобы быть электронными письмами, мы можем использовать MAILTO=someemail@domain.com такой как

MAILTO=someemail@domain.com
*/10 * * * * /scripts/mysc.sh

Но как объединить обе опции (1) и (2)? Я видел, что некоторое пространство веб-хостинга действительно имеет обе опции включенными одновременно. Я провел свое исследование, но не удался сделать это. Я использую песни 6.5 и использование crontab -e отредактировать.

4
задан 6 July 2014 в 17:25
2 ответа

Ваш первый пример отправляет и stderr, и stdout в файл (2>&1); переменная MAILTO, установленная в cron, будет захватывать любой вывод, который не перенаправлен, и это в сочетании с перенаправлением вывода в файл означает, что для cron не будет доступен вывод по электронной почте.

Я бы предложил использовать tee для добавления вывода в файл, а также для отправки его в stdout; этот ответ - https://serverfault. com/a/472878/102867 - очень похоже на то, что вы просите получить.

Альтернативно, следуйте предложению в первом ответе, и напишите оберточный сценарий, чтобы более изящно обрабатывать выходные данные сценария, после чего вы сможете и войти в систему, и отправить выходные данные сценария по почте

.
6
ответ дан 3 December 2019 в 02:50

Задание Cron для журнала и электронной почты:

Выполняется один раз в месяц в полночь первого дня месяца: 0 0 1 * *

0 0 1 * * /home/User/script.sh > /home/User/cronlog/`date +\%Y-\%m-\%d-\%H:\%M:\%S`-cron.log 2>&1 ; mailx -s "CronJob is run successfully" someone@domain.com,someone1@domain.com
2
ответ дан 3 December 2019 в 02:50

Теги

Похожие вопросы