Freesco, NND, CDN, EOS
http://forum.freesco.pl/

powiadomienie na e-maila
http://forum.freesco.pl/viewtopic.php?f=22&t=5107
Strona 1 z 1

Autor:  fishu [ wtorek, 10 sierpnia 2004, 15:15 ]
Tytuł:  powiadomienie na e-maila

Witam,

Szukałem.... szukałem... szukałem... i nie znalazłem... :wink:

Chciałbym zrobić coś takiego że raz na jakiś czas nnd pinguje dane IP /dokładnie chodzi o AccesPointa/ i w przypadku gdy nieodpowiada to wysyła e-maila z informacją o braku połączenia... jak to zrobić? szczególnie chodzi jak wysyłać e-maile... czytałem o sendmail na freesco... a co można użyć zamiast tego w nnd?

pozdro,

fishu.

Autor:  Koriolan [ wtorek, 10 sierpnia 2004, 17:36 ]
Tytuł: 

Przewinęło się już.
1) Trzeba se zrobić skrypcik do crona ktory robi 'ping 192.168...' z wyłapywaniem słowa '100% loss' i jak to zajdzie to :
zależy jaki masz serwer pocztowy (sendmaila nikt chyba jeszcze na NND nie uruchomił).
W CG zapisujemy plik w odpowiednimm katalogu i leci...

Autor:  fishu [ środa, 11 sierpnia 2004, 00:15 ]
Tytuł: 

Na razie niemam żadnego serwera poczty zainstalowanego... czyżby do tego odpowiedni był exim... a może coś innego...? jeśli był gdzieś taki skrypt to proszę o jakieś namiary to bym go odpowiednio już sobie dostosował.
Aha Koriolan - jeszcze jedno - niełapię zabardzo Twojej ostatniej linijki w wypowiedzi, mógłbyś mi jakoś to wytłumaczyć :)

Autor:  gg123456 [ środa, 11 sierpnia 2004, 11:35 ]
Tytuł: 

Koriolan pisze:
W CG zapisujemy plik w odpowiednimm katalogu i leci...


SUPER! Tego mi bylo trzeba. Zrobilem sobie skrypcik i wrzucilem do crona. Codziennie o 12 wysyla mi logi na maila, a na SMS wysyla informacje o blednym hasle do SSH lub rozlaczeniu modemu. Dzieki Koriolan

Autor:  fishu [ środa, 11 sierpnia 2004, 13:32 ]
Tytuł: 

gg123456... mógłbyś wrzucić skrypt od wysyłania sms`ów i e-mail`a... może się nie tylko mi sprzydać :)

Autor:  gg123456 [ środa, 11 sierpnia 2004, 14:17 ]
Tytuł: 

: [/] [] ()
#/bin/bash
#
#
# NALEZY POZMIENIAC ADRESY !!!!
#
# NAZWY I POLOZENIE LOGOW (u mnie /var/log)
#
# ORAZ SCIEZKE DO COMMUNIGATE
#
# CALOSC UMIESCIC W CRONIE
#
echo "TO: NAZWA <adres@host.pl>" > /root/mail.sub 
echo "FROM: Logi <postmaster@host>" >> /root/mail.sub
echo "SUBJECT: Logi" >> /root/mail.sub
echo >> /root/mail.sub
echo "Logi:" >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo "secure:" >> /root/mail.sub
echo >> /root/mail.sub
cat /var/log/secure >> /root/mail.sub
echo > /var/log/secure
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
# TUTAJ PLIK /var/log/console
echo "console:" >> /root/mail.sub
echo >> /root/mail.sub
cat /var/log/console >> /root/mail.sub
echo > /var/log/console
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
# plik /var/log/debug
echo "debug:" >> /root/mail.sub
echo >> /root/mail.sub
cat /var/log/debug >> /root/mail.sub
echo > /var/log/debug
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo "messages:" >> /root/mail.sub
echo >> /root/mail.sub
cat /var/log/messages >> /root/mail.sub
echo > /var/log/messages
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
#
# /var/log/samba.log
#
# UWAGA! Sam go w /var/log umiescilem, wiec jesli macie
# go w innym miejscu, to nalezy zmienic sciezke
#
echo "samba.log:" >> /root/mail.sub
echo >> /root/mail.sub
cat /var/log/samba.log >> /root/mail.sub
echo > /var/log/samba.log

echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo "syslog:" >> /root/mail.sub
echo >> /root/mail.sub
cat /var/log/syslog >> /root/mail.sub
echo > /var/log/syslog

echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo "apache:" >> /root/mail.sub
echo >> /root/mail.sub
cat /var/log/apache >> /root/mail.sub
echo > /var/log/apache

echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo >> /root/mail.sub
echo "squid.cache.log:" >> /root/mail.sub
echo >> /root/mail.sub
cat /var/log/squid.cache.log >> /root/mail.sub
echo > /var/log/squid.cache.log


cp /root/mail.sub /var/CommuniGate/Submitted


#
#
# PLIK /root/mail.sub jest kopiowany do /var/CommuniGate/Submitted
#
# Nalezy zmienic sciezke katalogu Submitted na wlasna
#
#
# CommuniGate sprawdza co 15 sekund, czy jest nowy mail do wyslania
#



W razie uwag prosze tutaj. Pisalem to na szybcika bez zastanowienia. Jak ktos przerobi, to bedzie dobrze.
Kazdy powinien zasade dzialania bez problemow zajarzyc

Co do SMSow, to poroniony pomysl, bo nie wiem jak wymazac z /var/log/messages wpis o blednym hasle i co chwile mi przychodzil SMS z alarmem :), bo co 5 minut widzial w messages FAILED PASSWORD :)

Autor:  Koriolan [ środa, 11 sierpnia 2004, 18:03 ]
Tytuł: 

Do fishu.
Koriolan napisał:
: [/] [] ()
W CG zapisujemy plik w odpowiednimm katalogu i leci...


To oznacza podpowiedź jak wysyłać listy w serwerze pocztowym CG (Communi Gate... lub jakoś tak).

Jak zainstalujesz sendmaila to tam gdzies jest program/skrypt 'mail'.
Wtedu piszesz coś takiego:
'mail to: ktoś@poczta.pl subiekt: "To temat .." "A to jest tresc listu"'
lub coś podobnego
'mail to: ktoś@poczta.pl subiekt: "To temat .." <plik_z_trescialistu'
i to wysyła list.

Dla innych serwerów pocztowych ... niech rzekną specjaliści.

Autor:  Koriolan [ środa, 11 sierpnia 2004, 18:10 ]
Tytuł: 

: [/] [] ()
Co do SMSow, to poroniony pomysl, bo nie wiem jak wymazac
z /var/log/messages wpis o blednym hasle i co chwile mi przychodzil SMS
z alarmem , bo co 5 minut widzial w messages FAILED PASSWORD

Tego to ja nie zajarzyłem.
Chodzi Ci o to, że jak coś się pojawi w messages to potem cały czas sms'uje ?
Rozwiazanie to :
Sprawdzac logi od jakiegos momentu np. numer lini (komenda 'tail' byłaby tu super),
Jak plik messages sie zmniejszy (logrotate) to od poczatku licznik na zero.

Jak Ci chodzi o cos innego to napisz o co ... :-)

Autor:  gg123456 [ środa, 11 sierpnia 2004, 18:23 ]
Tytuł: 

Koriolan pisze:
: [/] [] ()
Co do SMSow, to poroniony pomysl, bo nie wiem jak wymazac
z /var/log/messages wpis o blednym hasle i co chwile mi przychodzil SMS
z alarmem , bo co 5 minut widzial w messages FAILED PASSWORD

Tego to ja nie zajarzyłem.
Chodzi Ci o to, że jak coś się pojawi w messages to potem cały czas sms'uje ?
Rozwiazanie to :
Sprawdzac logi od jakiegos momentu np. numer lini (komenda 'tail' byłaby tu super),
Jak plik messages sie zmniejszy (logrotate) to od poczatku licznik na zero.

Jak Ci chodzi o cos innego to napisz o co ... :-)



Wlasnie, o to. Skrypt sprawdzal co 5 minut czy jest wpis Password w messages i jak byl, to wysylal, tyle, ze wpis pozostawal i za 5 minut znow SMS. Najlepiej byloby kasowac logi z jednoczesnym wyslaniem na maila. Jak dojdziesz z 'tail'em to napisz

Autor:  Koriolan [ czwartek, 12 sierpnia 2004, 12:11 ]
Tytuł: 

Dokładnie Ci tego nie zrobię :-(...
Ale kilka złotych mysli, to kto wie :?:

1) Najlepiej archiwizować a potem kasować pliki po logrotate np. messages.1, syslog.1 itp.
Zapewni to SPÓJNOŚĆ archiwum (ani braku ani nadmiaru linii logów).

2) W dokumentacji CG jest tak by mail najpierw kopiować z *.tmp chyba,
a POTEM RENAME zmiana nazwy.
Zapewni to, że NIE wyslesz maila do którego za chwile coś jeszcze się dokopiuje :!:

3) komenda :
: [/] [] ()
 gawk '{ if (NR >540) print $0 }'  messages.1
wyświetli linie pliku od 540.

3) Komenda:
: [/] [] ()
gawk 'END {print NR}' messages.1 >/tmp/sms_linia
Zapisze w pliku ilość linii.

Wiesz co dalej ... :-)

Autor:  gg123456 [ czwartek, 12 sierpnia 2004, 12:38 ]
Tytuł: 

moze da sie cos zrobic. Pokombinuje troche.

A moze tak zapisywac logi w dwoch plikach (messages i messages.copy). Wtedy skrypt sprawdzal by messages.copy i w razie wykrycia failed password wysyla SMSa i kasuje messages.copy. Wtedy logi byly by pelne i SMS by dochodzil gdy trzeba.



Co do CG, to mysle, ze kopiowanie trwa na tyle krotko, ze takie bledy beda zdarzac sie rzadko, jednak wezme to pod uwage.

Autor:  gg123456 [ czwartek, 12 sierpnia 2004, 13:00 ]
Tytuł: 

Tak wyglada moja propozycja:

Najpierw w /etc/syslog.conf trzeba dopisac
: [/] [] ()
*.info;*.!warn;\
   authpriv.none;cron.none;mail.none;news.none   -/var/log/messages.copy

a potem w /root stworzyc plik:
: [/] [] ()
cat /var/log/messages.copy |grep 'Failed password' >/dev/null
let wynik=$?

if [ $wynik -eq 0 ];

then

echo "To: <486XXXXXXXX@text.plusgsm.pl>" > /root/sms.tmp
echo "From: UWAGA <postmaster@host.pl" >> /root/sms.tmp
echo "Subject: PROBA WLAMANIA" >> /root/sms.tmp
cat /var/log/messages.copy | grep 'Failed password' >> /root/sms.tmp
cp /root/sms.tmp /var/CommuniGate/Submitted
mv /var/CommuniGate/Submitted/sms.tmp /var/CommuniGate/Submitted/sms.sub
echo > /var/log/messages.copy
else
echo > /dev/null

fi



i dodac go do crona np. co dwie minuty. DZIALA!

UWAGA! NALEZY ZMIENIC NUMER TELEFONU W SKRYPCIE ORAZ SCIEZKE DO COMMUNIGATE!!!
DZIALA W PlusGSM. W innych sieciach nie wiem na jaki mail trzeba wyslac

Autor:  Maciek [ czwartek, 12 sierpnia 2004, 13:49 ]
Tytuł:  Re: powiadomienie na e-maila

fishu pisze:
Chciałbym zrobić coś takiego że raz na jakiś czas nnd pinguje dane IP /dokładnie chodzi o AccesPointa/ i w przypadku gdy nieodpowiada to wysyła e-maila z informacją o braku połączenia... jak to zrobić? szczególnie chodzi jak wysyłać e-maile... czytałem o sendmail na freesco... a co można użyć zamiast tego w nnd?

Dopiero dziś zauważyłem ten wątek. Strasznie dużo kombinowania. Jest prostszy sposób. Można zastosować sysmon (taki demonek), u mnie monitorują się serwerki nawzajem, a w razie padu dostaję sms. To może działać także na wewnętrzny numer IP Access Pointa. Bez problemu wysyła smasa w plusie, w erze i idei też może ale tam trzeba mieć wykupioną płatną opcję. Oczywiście potrzebny jest do tego exim, żeby wysyłał smsa jako maila na komórkę.

Autor:  gg123456 [ czwartek, 12 sierpnia 2004, 13:54 ]
Tytuł:  Re: powiadomienie na e-maila

Maciek pisze:
Oczywiście potrzebny jest do tego exim, żeby wysyłał smsa jako maila na komórkę.


Powyzsze posty maja zastosowanie w CG, bo tam nie ma funkcji mail, jak w eximie.


Mozesz zapodac tego sysmona i/lub jakies faq do niego?

Autor:  Koriolan [ czwartek, 12 sierpnia 2004, 15:55 ]
Tytuł: 

: [/] [] ()
Co do CG, to mysle, ze kopiowanie trwa na tyle krotko, ze takie bledy beda zdarzac sie rzadko, jednak wezme to pod uwage.
Może jestem idealistą, ale jak można coś zrobić prawie doskonale; to dlaczego tego nie zrobić ?

Ja widzę linuksa jako wielowątkowy, wielodostepny system i tak o nim myslę.

Autor:  gg123456 [ czwartek, 12 sierpnia 2004, 15:58 ]
Tytuł: 

Koriolan pisze:
: [/] [] ()
Co do CG, to mysle, ze kopiowanie trwa na tyle krotko, ze takie bledy beda zdarzac sie rzadko, jednak wezme to pod uwage.
Może jestem idealistą, ale jak można coś zrobić prawie doskonale; to dlaczego tego nie zrobić ?

Ja widzę linuksa jako wielowątkowy, wielodostepny system i tak o nim myslę.


Twoje uwagi juz wczesniej zastosowalem przy powiadamianiu na SMS. Rzeczywiscie, ja tez nie lubie, jak cos jest nie do konca, albo kuleje.

Autor:  Koriolan [ piątek, 13 sierpnia 2004, 17:50 ]
Tytuł: 

Jeszcze jedna uwaga ...
CG jest nakładką na ... sendmaila.
(Chłopcy ze stalkera chyba by mnie zabili za taka uwagę).

To jest też i mail.
Jest w /bin/.. a uzywa go sie np. tak :
: [/] [] ()
 mail -s "test z maila" -c pitsoft@pitsoft.pl </etc/proftpd.conf

Sprawdziłem pobieżnie - chodzi .
-----
Popowiedziałem Ci z tym 'awk' by Twój skrypt był uniwersalniejszy.
Jedną komendą sprawdzasz messages OD LINII np. 300.
Druga komendą zapamietujesz ile linii już sparwdziłes.
Ale jak działa to super ...

Autor:  fishu [ sobota, 14 sierpnia 2004, 00:40 ]
Tytuł: 

ok - udało mi się ustawić monitorowanie AP`ków, ale... mam pytanko co do exim`a - jak wysyłać maile z lini poleceń z tematem wiadomości a nie tylko samą treścią? / -s "subject" nie pasuje/

edit: ok już wiem jak :)
mój skrypt jest trochę zmodyfikowanym skryptem do wznawiania połączeń i wygląda on tak:
Cytuj:
#!/bin/bash
date >> /var/log/ap

ping -c 10 -i 2 192.168.0.xxx |grep 'icmp_seq' >/dev/null
let wynik=$?
if [ $wynik -eq 0 ]; then
echo AccesPoint xxx działa ok >> /var/log/ap
else
echo Problemy z AccesPointem xxx >> /var/log/ap
exim -v adres@emailowy <<**
From: admin@sieci
To: adres@emailowy
Subject: Problemy z AccesPointem xxx
Problemy z AccesPointem xxx
.
**
sleep 5
fi
ping -c 10 -i 2 192.168.0.yyy |grep 'icmp_seq' >/dev/null
let wynik=$?
if [ $wynik -eq 0 ]; then
echo AccesPoint yyy działa ok >> /var/log/ap
else
echo Problemy z AccesPountem yyy >> /var/log/ap
exim -v adres@emailowy <<**
From: admin@sieci
To: adres@emailowy
Subject: Problemy z AccesPointem yyy
Problemy z AccesPointem yyy
.
**
sleep 5
fi



Jakby ktoś miał pomysł jak "zoptymalizować" lub w ogóle poprawić to piszecie, bo ja w skryptach jestem "cienki" :)
jedno mnie tylko zastanawia... musiałem dać pozycję sleep /teoretycznie wystarczy ją dodać po ostatnim kroku, ale na wszelki wypadek dałem po każdym exim`ie/ gdybym jej nie dodał to pomimo iż mail zostanie wysłany to skrypt nie zakończy pracy i "czeka" ...może ktoś się orientuje dlaczego dak jest?

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/