Portál AbcLinuxu, 26. dubna 2024 18:18


Dotaz: odeslání mailu na základě události

29.12.2004 09:56 milda
odeslání mailu na základě události
Přečteno: 309×
Odpovědět | Admin
Dobrý den, mám následující problém:
Potřebuji monitorovat určité části systému (např. funkčnost RAID, sem tam zaslat mailem logy atd. ) a v případě poruchy se připojit na internet (bohužel přes modem) a zaslat připravený mail.
Chtěl jsem to řešit následovně:
Pomocí nějakého scriptu spouštěného cronem kontrolovat co kontrolovat chci (toto není problém). V případě, že je vše OK tak se v klidu ukončit, jestliže ne, poslat jeden z nachystaných mailů vypovídajících o druhu poruchy. Potřebuju něco, čím se připojím z konzole na net (myslel jsem na wvdial, ale nejde spustit na pozadí), nějaký mailovací program, kterému bych mohl předat parametry co, kam a přes koho ze scriptu (možná nail nebo něco takového). Díky za každý tip. Milda
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

29.12.2004 10:46 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
Odpovědět | | Sbalit | Link | Blokovat | Admin
Já jsem měl normálně vytvořené zařízení ppp0 a zastavoval jsem ho a spouštěl tak jako každé rozhraní ifup ppp0, ifdown ppp0. (RH)

Takže jsem měl skript který připojil ppp0 a čekal dokud se neodeslala pošta (mailq) a odpojil ppp0.

Samozřejmě ještě jsem měl kontrolu zda ppp0 není připojeno moc dlouho déle jak 1h a také zda někdo není připojen na internet potom jsem ppp0 nevypínal.

Viz:
#!/bin/bash

#-------------VLASTNI-PROGRAM-----------------------------------------

case $1 in

#-------------START---------------------------------------------------
	start) echo "Pripojuji se k internetu"
               if [ ! -e /tmp/pppcosts.internet.run -a ! -e /tmp/modem.block ]
		then
			echo $$ > /tmp/pppcosts.internet.run
			if [ ! -e /var/run/ppp?.pid ]
				then
			  	 echo "Zdviham modem"
#			  	 /usr/bin/wvdial Inecnet 2>/var/log/wvdial.messages &
				/sbin/ifup ppp0
			fi
			date '+P %H %M %w %j - Připojeno v %T %d.%m.%Y' >> ~/internet.cas
			
mysql -h internet -D internet -e "insert into pripojeni values ( "$(date +%s)", '192.168.2.1', 'pppcosts', 'P','"$(date +%Y-%m-%d)"','"$(date +%T)"') ;"
sleep 2
                        echo -n "Připojeno v "
                        date
		else
			echo "Již jste připojen - pro odpojení použijte \"internet stop\""
			echo "Nebo je modem blokován!"
			exit 1

		fi
	;;
#-------------STOP----------------------------------------------------
	stop)  echo "Odpojuji se od internetu"
		  if [ -e /tmp/pppcosts.internet.run ]
		    then 
		      rm -f /tmp/pppcosts.internet.run
		      if [ ! -e /tmp/*.internet.run ]
		          	then
			          echo "Zavěšuji modem"
#			          killall wvdial
				  /sbin/ifdown ppp0
		      fi
		      date '+O %H %M %w %j - Odpojeno v %T %d.%m.%Y' >> ~/internet.cas
mysql -h internet -D internet -e "insert into pripojeni values ( "$(date +%s)", '192.168.2.1', 'pppcosts', 'O', '"$(date +%Y-%m-%d)"', '"$(date +%T)"') ;"

sleep 2

                      echo -n "Odpojeno v "
                      date
		  fi
  
	;;
#-------------NAPOVEDA------------------------------------------------
	*)	echo
		echo "Program internet pppcosts v1.0 (c) 2000 S&S"
		echo
		echo "Spusťte program \"internet start\" - pro připojení"
		echo "                \"internet stop\"  - pro odpojení"
		echo
		echo "V domovském adresáři jsou v souboru \"internet.cas\" zapsány"
		echo "časy přístupu na internet."
	;;
esac
exit 0

29.12.2004 11:12 milda
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
No ale bohužel ve Slack 10.0 není script ifup/ifdown, k čemu potřebuješ to zařízení ppp0 (pravděpodobně jsem to moc dobře nepochopil), modem připojený mám, wvdial po vytočení čísla spustí pppd - internet je připojený. A další věc, nepodařilo se mi zjistit jak sdělit programu mail přes který smtp server bude pošta odeslaná. Díky Milda
29.12.2004 11:21 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
Ty máš modem připojen pořád ???

Mě právě to ifup /ifdown ppp0 pokládalo a zvedalo modem a vytáčelo číslo. (Jde to dělat i tím wvdial)

mail pošle mail na lokální smtp 127.0.0.1 :-)

Takže stačí mějakej postfix a podobně :-) který to prostě předá tvému SMTP serveru u isp.
29.12.2004 11:29 milda
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
Ne, nemám modem připojenej pořád. Chtěl jsem se původně připojit wvdial &, nicméně na pozadí nechce fungovat. Položit jsem ho chtěl po odeslání pošty killnutím wvdial a potom killnout pppd.
Odeslání pošty také nějak nejede. Mail sice odešlu, ale skončí bůhví kde. Vůbec netuším, kam to posílá.
Dík Milda
Josef Kufner avatar 29.12.2004 11:41 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
na pozadí by měl fungovat, pokud nebude vůbec nic vypisovat na konzoli, takže přesměrovat oba výstupy někam do logu a je to.
Hello world ! Segmentation fault (core dumped)
29.12.2004 11:48 milda
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
No to je fakt, díky už to zpívá. Čau Milda
29.12.2004 11:46 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
Jestli jste si všiml tak jsem v tom skriptu taky používal jednu dobu wvdial a fungovalo to.

(Takže práva toho wvdialu zda může ovládat modem)

Jinak pppd netřeba o to se postará ten wvdial.

/usr/bin/wvdial Inecnet 2>/var/log/wvdial.messages & (spuštění)

killall wvdial (ukončení)

Jinak jak jsem psal mail pošle mail přes SMTP na IP 127.0.0.1 takže běží vám tam nějakej SMTP server na tom stroji ? A kam ten to dává - posílá přímo (vaše IP může být na blacklistu) nebo předává vašemu ISP ?

Zadal jste správnou adresu tomu příkazu mail atd.....

PS. pokud zůstává pošta viset na vašem místním SMTP zjistíte příkazem mailq :-)
29.12.2004 12:43 milda
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
ten script jsem pochopil, to by bylo v pohodě. Nicméně na této mašině SMTP server nejede. Ale abych to objasnil úplně:
Ve firmě mám poštovní server nejenom pro lokální provoz, ale i ven. Ten ale nechci využívat, protože toto bude instalace pro zákazníka, kde žádný pošťák nebude. Potřebuji natvrdo někde nastavit adresu smtp.vol.cz a budu to mít v kupě tak jak potřebuju. Díky Milda
29.12.2004 12:58 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
Tak ti to nic nikam neodešle :-)

Musíš tam nějakej dát však nemusí poslouchat na venkovním rozhraní ale pouze na lo (127.0.0.1) a nastavit ho tak aby to předával tomu nadřazenému smtp serveru smtp.vol.cz.

Nebo musíš použít něco jiného místo mailu kde se dá smtp server nastavit.
29.12.2004 13:43 Martin
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
>Nebo musíš použít něco jiného místo mailu kde se dá smtp server nastavit.

existuje neco takovyho? Teda krome telnet + chat
29.12.2004 13:48 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
Nevím prostě mu tam vraž postfix třeba a je to nastav aby vše předával tomu nadřazenému SMTP a poslouchal pouze na 127.0.0.1 a je po problému.
29.12.2004 14:03 milda
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
Tak to su teda odvázanej, že budu muset konfigurovat znova Postfix. Fakt nikdo nemáte nějakej tip na prográmek, kterej bych mohl nakrmit dávkou z příkazové řádky? Dík Milda
29.12.2004 14:19 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
Ne, ale s Net::SMTP(3pm) má takový program asi tři řádky.
30.12.2004 08:55 milda
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
Net::SMTP(3pm) Nějak nechápu, cos tím chtěl říct.

Milda
7.1.2005 12:55 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
To je odkaz na manuálovou stránku Net::SMTP v sekci 3, a je to perlí modul (pm).
7.1.2005 12:42 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
a co tak zrobit nejaky script v pythone alebo perle ? len sa pripojis na ten SMTP, popripade sa autentifikujes, posles mail a odpojis sa. nic zlozite podla mna, len si zisti ako funguje SMTP protokol.
29.12.2004 12:30 Kamorek | skóre: 33 | blog: předvolební mazec | VB
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zdar, rad bych vedel, jak muzu monitorovat stav sveho SW raidu. Kde v logach to najdu? Dik za pomoc. Spustil jsem si webmin a v ikone RAID mi naskoci md0 a md1. Nicmene kdyz to rozkliknu, tak mi u obou pise, ze 1 disk failed. Zajimalo by me teda, co se deje. System jede stale dobre. mam RAID 1. dikec Kama
Taky si udělám nějakou studii.
29.12.2004 12:50 milda
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
Čau Kámo, stáhni si balíček mdadm a potom vyzkoušej mdadm --detail /dev/mdx. Měl by ti ukázat info o funkčních, poškozených a záložních discích daného pole. Ještě můžeš zkusit kouknout do /proc/mdstat

čau Milda
29.12.2004 12:53 milda
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
Jěště se můžeš podívat do Linux-HOWTOs/Software-RAID-HOWTO. Jestli vládneš eng. tak je to tam super popsaný.

čau Milda
29.12.2004 15:10 jm
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
cat /proc/mdstat
7.1.2005 09:46 Kamorek | skóre: 33 | blog: předvolební mazec | VB
Rozbalit Rozbalit vše Re: odeslání mailu na základě události
Zdravim, mam 2 SCSI disky, SW raid, md0, md1. Jak jsem psal vyse. jm radi, pouzit cat /proc/mdstat, zkousel jsem i mdadm, ten hlasi velmi podobne vysledky. Nicmene nevim, co presne si o nich mam myslet. Dik za help.

cat /proc/mdstat:


Personalities : [raid1] 
read_ahead 1024 sectors
md0 : active raid1 sda1[0]
      17301888 blocks [2/1] [U_]
      
md1 : active raid1 sda2[0]
      610368 blocks [2/1] [U_]
      
unused devices: none 
mdadm --detail /dev/md1 hlasi:
/dev/md1:
        Version : 00.90.00
  Creation Time : Tue Oct 19 18:22:40 2004
     Raid Level : raid1
     Array Size : 610368 (596.06 MiB 625.02 MB)
    Device Size : 610368 (596.06 MiB 625.02 MB)
   Raid Devices : 2
  Total Devices : 1
Preferred Minor : 1
    Persistence : Superblock is persistent

    Update Time : Wed Dec 29 17:00:13 2004
          State : dirty, degraded
 Active Devices : 1
Working Devices : 1
 Failed Devices : 0
  Spare Devices : 0

           UUID : baf4a9a5:46b97317:f200a831:17f247b5
         Events : 0.60

    Number   Major   Minor   RaidDevice State
       0       8        2        0      active sync   /dev/sda2
       1       0        0        1      faulty removed 
Taky si udělám nějakou studii.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.