LINUX.ORG.RU
решено ФорумAdmin

Скрипт для отправки почты

 


0

2

Доброго времени суток!

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

Я написал под винду EXE файл для анализа лога бекапа MSSQL баз (всего их около 200).

А под онтипик не могу разобраться как сделать то же самое. Думаю взять Bash и его средсвами анализировать лог dump файла и отсылать письмо админам.

Если не разберусь придется брать mono, так как пишу в последнее время в основном на C#.

В общем задача написать почтовый клиент на языке сценариев, какие варианты?

★★

Требуется отправлять письмо из консоли? Тогда sendEmail.

Deleted
()

В общем задача написать почтовый клиент на языке сценариев, какие варианты?

Вариантов, на самом деле, масса - sh, bash, perl, python и так далее. В чем проблема?

alozovskoy ★★★★★
()
Ответ на: комментарий от Debasher

В общем предположим что в процессе работы pg_dump возникли ошибки. Нужно отправить письмо об этом админам. Вроде все.

Пока скрипт архивации выглядит так

root@backup:/home/akmide# cat /root/bin/ivrossdb_backup.sh
#!/bin/bash

/usr/lib/postgresql/9.4/bin/pg_dump -h 172.16.0.11 -U postgres ivrossdb > /rezerv/m/SQLBACKUP/ivrossdb-$(date +%A)-$1.sql

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

weare ★★
() автор топика
Ответ на: комментарий от weare

bash позволяет вызвать любое системное приложени. Самый простой используемый мной вариант для отправки почты - mutt:

echo -e "Произошла ошибка

rc: $returnCode

something: $var123

 " | mutt -s 'Все пропало!!' -- admin@example.com
alozovskoy ★★★★★
()
Последнее исправление: alozovskoy (всего исправлений: 2)
Ответ на: комментарий от alozovskoy

То есть что то вроде этого?

root@backup:/home/akmide# cat /root/bin/ivrossdb_backup.sh
#!/bin/bash

/usr/lib/postgresql/9.4/bin/pg_dump -h 172.16.0.11 -U postgres ivrossdb > /rezerv/m/SQLBACKUP/ivrossdb-$(date +%A)-$1.sql 1>>/tmp/pg_dump_err.log
weare ★★
() автор топика
Ответ на: комментарий от weare
#!/bin/sh
#
APCUPSD_EMAIL="sendmail"
SYSEMAIL=mail@mail.ru

HOSTNAME=`hostname`
MSG="$HOSTNAME Power has returned"
#
(
    echo "Subject: $MSG";
    tail /var/log/apcupsd.events;
) | $APCUPSD_EMAIL -F "APC_ROBOT" $SYSEMAIL
    
exit 0

если сендмэйл получает отлуп, от том что нет в сети такого смтп, настрой отправку через msmtp. Рецепт такой связки найдеш сам, сверху пример, отсылки куска лога по событию от упса

anonymous
()

Добавлю nullmailer к сендмэйлу и mutt'у.

anonymous
()
Ответ на: комментарий от weare
#!/bin/bash
#

PGHOST="dbhost"
PGDATABASE="dbname"
PGUSER="dbuser"
PGPASSWORD="dbpassword"
SQLBACKUP="/rezerv/m/SQLBACKUP/$PGDATABASE-$(date +%A)-$1.sql"

/usr/lib/postgresql/9.4/bin/pg_dump > "$SQLBACKUP"
sin_a ★★★★★
()
Последнее исправление: sin_a (всего исправлений: 1)
Ответ на: комментарий от sin_a

Даже так:

/usr/lib/postgresql/9.4/bin/pg_dump -f "$SQLBACKUP"
и тогда можно вывод перенаправлять.

sin_a ★★★★★
()

Для начала определись:
1. анализ лога бекапа MSSQL баз
2. Скрипт для отправки почты
3. написать почтовый клиент на языке сценариев
если:
п.1 хоть напиши что делать хочешь?
п.2 тут на вкус и цвет, рекомендую использовать тот клиент который в твоем дистре, если нет всегда есть возможность поставить любимый.
п.3 можно - но вот подумай зачем? см. п.2

anc ★★★★★
()
Ответ на: комментарий от alozovskoy

Тема такая, читать некогда. Да и чтобы читать нужно понять что читать, а понимания нет.

В общем поправь меня пожалуйста-пожалуйста!


root@backup:/home/akmide# /usr/lib/postgresql/9.4/bin/pg_dump 1 >> -h 172.16.0.11 -U postgres ivrossdb > /rezerv/m/SQLBACKUP/ivrossdb-$(date +%A)-$1_test.sql
pg_dump: too many command-line arguments (first is "172.16.0.11")
Try "pg_dump --help" for more information.
root@backup:/home/akmide# /usr/lib/postgresql/9.4/bin/pg_dump  -h 172.16.0.11 -U postgres ivrossdb 1 > /rezerv/m/SQLBACKUP/ivrossdb-$(date +%A)-$1_test.sql
pg_dump: too many command-line arguments (first is "1")
Try "pg_dump --help" for more information.

weare ★★
() автор топика
Ответ на: комментарий от weare

$1_test.sql - что ты этим хотел сказать?


/usr/lib/postgresql/9.4/bin/pg_dump -h 172.16.0.11 -U postgres ivrossdb 1>>/rezerv/m/SQLBACKUP/ivrossdb-$(date +%A)-1_test.sql 2>>/rezerv/log/ivrossdb-$(date +%A)-error.log

1>>/rezerv/m/SQLBACKUP/ivrossdb-$(date +%A)-1_test.sql - перенаправление stdout (вывод) в файл.

2>>/rezerv/log/ivrossdb-$(date +%A)-error.log - перенаправление stderr (поток ошибок) в файл.

Можно заменить >> на >, тогда файлы будут не дописываться, а перезаписываться каждый раз.

alozovskoy ★★★★★
()
Последнее исправление: alozovskoy (всего исправлений: 2)
Ответ на: комментарий от alozovskoy

$1_test.sql - что ты этим хотел сказать?

Это я не хотел основные бекапы тереть, все пустил в ненужный файл.

Сейчас пробую...

Кажись пошло...

Получилось! Ураа!

weare ★★
() автор топика

Спасибо всем кто помогал. Вывод программы pg_dump разделил на основной и вывод ошибок. Оповещение сделал на mono, благо заработало почти сразу.

weare ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.