Автор Гілка: Автоматичне повідомлення на e-mail  (Прочитано 2363 раз)

Відсутній noddeat

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +0/-0
Задача: автоматично після завершення скрипта відправляти мені певного листа. Реалізував за допомогою команди mail:

pwd | mail -s "Script finished" mymail@domain.comця проста команда працює.

питання таке: як скерувати в текст листа вивід кількох команд. тобто хочу щось таке:

echo "This is an automatic e-mail. The results are:"
pwd
ls -l
uptime

щоб вивід цих всіх команд містився в текст листа, який відправить mail.

ну і взагалі загальне питання, як перенаправлювати ввід/вивід не для однієї команди, а для блоку команд (так, щоб не пхати цей блок у окремий файл скрипту)
Filenames are infinite in length, where infinity is set to to 255 characters. Peter Collinson, "The Unix File System"

Відсутній StarWolf

  • Кореспондент
  • ***
  • дописів: 109
  • Карма: +0/-0
  • Олхімік
Re: Автоматичне повідомлення на e-mail
« Відповідей #1 : 2009-04-02 19:14:36 »
Для прикладу:

myvar = $( ls -l )
І цю змінну додаєте до листа там де Вам потрібно.

P.S. Я початківець, тому сильно не сваріть, якщо не підійшло.
« Змінено: 2009-04-02 19:14:56 від StarWolf »
[Arch Linux] [Awesome WM]

Відсутній borman

  • Графоман
  • ****
  • дописів: 416
  • Карма: +0/-0
  • Debianizer
Re: Автоматичне повідомлення на e-mail
« Відповідей #2 : 2009-04-02 19:26:29 »
echo $(pwd; ls -l; uptime) | mail -s "Script finished" mymail@domain.com

Якщо щось складне можна просто створити додатковий скрипт-обготку, яка просто викликатиме початковий скрипт та його вивід скеровуватиме на електронну пошту.
« Змінено: 2009-04-02 19:27:59 від borman »
dd if=/dev/zero of=/dev/null

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Автоматичне повідомлення на e-mail
« Відповідей #3 : 2009-04-02 21:30:16 »
{ cmd1 ; cmd2 ; cmd3 ; } | mail ...

Відсутній noddeat

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +0/-0
Re: Автоматичне повідомлення на e-mail
« Відповідей #4 : 2009-04-02 22:21:13 »
{ cmd1 ; cmd2 ; cmd3 ; } | mail ...
о, дякую, оце найкращий варіант!
бо можна отак зробити:
{
  cmd1;
  cmd2;
  ...
  cmd14;
} | mail -s "subject" mail@mydomain.com
бо коли воно все в одному рядку, то скрипт не дуже human readable

також дякую борману і Старвольфу за ваші варіанти: теж колись знадобляться.
« Змінено: 2009-04-02 22:22:09 від noddeat »
Filenames are infinite in length, where infinity is set to to 255 characters. Peter Collinson, "The Unix File System"