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


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

Автор Тема: crontab и отчет на почту  (Прочитано 2480 раз)

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

Оффлайн Jeison

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
crontab и отчет на почту
« : 10 Июля 2015, 07:29:58 »
добрый день. написал скрипт, засунул его в крон, указал параметр MAILTO. вроде все работает, отчет о выполнении приходит на почту, за исключением одного - приходит на почту лишь половина отчета работы скрипта. сам скрипт выполняет довольно долго - минуты 3-4 (выгрузка дампа, архивация, закачка на фтп и тд), а на почту приходит только первые этапы работы скрипта (выгрузка дампа)
мб есть какой параметр, что бы указать крону что надо дожидатсья полного выполнения скрипта прежде чем слать мне отчет на почту?

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Re: crontab и отчет на почту
« Ответ #1 : 10 Июля 2015, 07:37:18 »
Если нет амперсанда в последовательности команд, то команда отправки мыла и не запуститься пока предыдущие команды не отработают?
Надо смотреть что Вы там скармливаете cron-у

Оффлайн Jeison

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Re: crontab и отчет на почту
« Ответ #2 : 10 Июля 2015, 10:21:30 »
у меня примерно такой скрипт:
echo "start dump"
mysqldump base > dump.sql
echo "finish dump"
echo "start tar"
tar -zcf dump.sql dump.tar.gz
echo "finish tar"
wget dump.tar.gz http://localhost/download/php
т.е. каждая команда выполняется 1-2 минуты, весь скрипт минут за 5-7, а на почту мне приходит:
Цитировать
start dump
mysqldump base > dump.sql
при это сам скрипт выполняется полностью

Оффлайн petro25

  • Участник
  • *
  • Сообщений: 182
    • Просмотр профиля
Re: crontab и отчет на почту
« Ответ #3 : 10 Июля 2015, 10:51:56 »
у меня примерно такой скрипт:
echo "start dump"
mysqldump base > dump.sql
echo "finish dump"
echo "start tar"
tar -zcf dump.sql dump.tar.gz
echo "finish tar"
wget dump.tar.gz http://localhost/download/php
т.е. каждая команда выполняется 1-2 минуты, весь скрипт минут за 5-7, а на почту мне приходит:
Цитировать
start dump
mysqldump base > dump.sql
при это сам скрипт выполняется полностью

Сделай скрипт типа такого:

start=`echo start dump`
mysqldump base > dump.sql
finish=`echo finish dump`
starttar=`echo start tar`
tar -zcf dump.sql dump.tar.gz
finishtar=`echo finish tar`
wget dump.tar.gz http://localhost/download/php
finishfull=`echo "all fine;)"`
echo -e "$start\n $finish\n $starttar \n $finishtar \n $finishfull" | sendmail email@example.com

В результате ты после выполнения скрипта будеш получать письмо на свою почту в полном виде.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7836
  • We were here
    • Просмотр профиля
Re: crontab и отчет на почту
« Ответ #4 : 10 Июля 2015, 12:53:47 »
Jeison,
Интерпретатор в скрипте указан?
(#!/bin/bash)

petro25,
Я так понимаю, ТС нужно все поэтапно. С таким же успехом в вашем примере в конце можно написать просто 'all fine'.
« Последнее редактирование: 10 Июля 2015, 13:02:30 от ALiEN175 »
🖥 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

Оффлайн Jeison

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Re: crontab и отчет на почту
« Ответ #5 : 10 Июля 2015, 13:12:24 »


Сделай скрипт типа такого:

start=`echo start dump`
mysqldump base > dump.sql
finish=`echo finish dump`
starttar=`echo start tar`
tar -zcf dump.sql dump.tar.gz
finishtar=`echo finish tar`
wget dump.tar.gz http://localhost/download/php
finishfull=`echo "all fine;)"`
echo -e "$start\n $finish\n $starttar \n $finishtar \n $finishfull" | sendmail email@example.com

В результате ты после выполнения скрипта будеш получать письмо на свою почту в полном виде.
в этом случае мне просто придет на почту текст, который я написал, а если в прцоессе выполнения, например при команде tar -zcf dump.sql dump.tar.gz он выдаст tar: File dump.sql not found я это не получу.

Jeison,
Интерпретатор в скрипте указан?
(#!/bin/bash)

petro25,
Я так понимаю, ТС нужно все поэтапно. С таким же успехом в вашем примере в конце можно написать просто 'all fine'.
#!/bin/bash указал. да мне нужно не только этапность но и видеть ошибку, если она вдруг выскочит. на самом деле там намного сложнее скрипт, он делает не только дамп базы, он вызывает руби скрипт, который с этим дампом производит какие то манипуляции, конвертирует это все дело в особый xml и тд. это я так для примера там написал. просто мне кажется что проблема может заключаться именно в том что крон не ждет и сразу отправляет мне письмо
« Последнее редактирование: 10 Июля 2015, 13:14:15 от Jeison »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7836
  • We were here
    • Просмотр профиля
Re: crontab и отчет на почту
« Ответ #6 : 10 Июля 2015, 13:32:55 »
Jeison,
Думаю, что проблема все-таки в скрипте. Выложите полностью.

Цитировать
а если в прцоессе выполнения, например при команде tar -zcf dump.sql dump.tar.gz он выдаст tar: File dump.sql not found я это не получу.
cron сам отправляет все ошибки (stderr).  8)
🖥 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

 

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