Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Как работает cron с почтой?  (Прочитано 1712 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Bulvinkl2004

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Как работает cron с почтой?
« : 12 Мая 2017, 11:18:30 »
Добрый день!
Разъясните пожалуйста момент отправки уведомлений CRON.
Есть простенький скрипт по резервному копированию:
DIR=`date +%F__wf`;
mkdir /media/Share/backup/$DIR;
mysqldump -uwikiforum -password^ bitnami_mediawiki > /media/Share/backup/$DIR/bitnami_mediawiki.sql
mysqldump -uwikiforum -password^ forum  > /media/Share/backup/$DIR/forum.sql
zip -r -0 /media/Share/backup/$DIR/wiki.zip /var/www/wiki.sitename.ru
zip -r -0 /media/Share/backup/$DIR/forum.zip /var/www/forum.sitename.ru
result=$?
if [ "$result" -eq 0 ]
then
echo done_complete | ssmtp -v -s name@email.ru
else
echo error_backup | ssmtp -v -s name@email.ru
fi

В простом запуске скрипт отправляет на почту сообщение "done_complete" либо "error_backup" в зависимости от результата выполнения. Когда файл скрипта прописываю в cron, то соответствующие сообщения не приходят. Сообщения сыпятся на почту от самого Cron в неудобном для меня формате. Как решить вопрос с отправкой уведомлений в удобном для меня формате?
MTA-SSMTP

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6735
  • 20% Cooler
    • Просмотр профиля
Re: Как работает cron с почтой?
« Ответ #1 : 12 Мая 2017, 13:01:08 »
сообщения не приходят. Сообщения сыпятся на почту от самого Cron

Приходят или всё-таки не приходят? И поясните про "неудобный формат"
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Bulvinkl2004

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Как работает cron с почтой?
« Ответ #2 : 12 Мая 2017, 13:15:00 »
Сообщения приходят но не так, как я их хочу видеть. Под неудобным форматом понимается то, что содержимое письма представляет результат работы скрипта, который состоит из пары тысяч строк. То есть в сообщении отображается действия скрипта, а не сообщение, которое я хочу видеть на почтовом ящике.
1. Пример запуска через крон и результат такой:

........
mysqldump: [Warning] Using a password on the command line interface can be insecure.
mysqldump: [Warning] Using a password on the command line interface can be insecure.
  adding: var/www/wiki.sitename.ru/ (stored 0%)
  adding: var/www/wiki.sitename.ru/php/ (stored 0%)
  adding: var/www/wiki.sitename.ru/php/thumb_handler.php (stored 0%)
............ <более 1000 строк>

2. Когда без крона запускаю скрипт, то отрабатывают сообщения, которые в конструкции "If".

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6735
  • 20% Cooler
    • Просмотр профиля
Re: Как работает cron с почтой?
« Ответ #3 : 12 Мая 2017, 13:24:10 »
в кроне перенаправьте вывод скрипта в /dev/null
(Нажмите, чтобы показать/скрыть)

🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Bulvinkl2004

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Как работает cron с почтой?
« Ответ #4 : 12 Мая 2017, 14:37:31 »
Не помогло. Решение оказывается другое. Нужно было в скрипте в конструкции if написать полный путь к ssmtp
if [ "$result" -eq 0 ]
then
echo "done_complete" | /usr/sbin/ssmtp -s name@email.ru
else
echo "error_backup" | /usr/sbin/ssmtp -s name@email.ru
fi
Соответственно крону запретить отсылать сообщения (MAILTO="").
Остается открытым вопрос, почему Cron нужен полный путь к SSMTP, а когда просто запускаешь скрипт - полный путь к МТА не нужен. Есть ли разъяснения по этому вопросу?

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6735
  • 20% Cooler
    • Просмотр профиля
Re: Как работает cron с почтой?
« Ответ #5 : 12 Мая 2017, 14:47:35 »
В крон отсутствует переменная PATH. Можно, кстати, её добавить.
http://stackoverflow.com/questions/2388087/how-to-get-cron-to-call-in-the-correct-paths
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Bulvinkl2004

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Как работает cron с почтой?
« Ответ #6 : 12 Мая 2017, 14:55:05 »
Спасибо! И еще вопрос. А откуда крон настройки почты тянет, точней, как "он знает" что мои настройки в ssmtp хранятся или где-нибудь еще?

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6735
  • 20% Cooler
    • Просмотр профиля
Re: Как работает cron с почтой?
« Ответ #7 : 12 Мая 2017, 15:00:00 »
весь вывод крон передаётся в sendmail
which sendmail
Насколько я помню, в случае с ssmtp там просто линк sendmail -> ssmtp
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Bulvinkl2004

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Как работает cron с почтой?
« Ответ #8 : 12 Мая 2017, 15:08:48 »
Насколько я помню, в случае с ssmtp там просто линк sendmail -> ssmtp

Да, действительно так и есть. Спасибо еще раз. Вопрос решен.

 

Страница сгенерирована за 0.028 секунд. Запросов: 23.