Pagina 1 di 2

Mail di avviso raid degradato

Inviato: lun 9 ott 2006, 13:09
da Pandorix
Ciao a tutti, avrei bisogno, per un server al lavoro, di un programmino o uno script che permetta al server in questione di mandare una mail ad un indirizzo extra-lan quando il raid dei dischi si rompe. Avete idea di come potrei fare o quali software potrei usare?
Grazie :)

Inviato: lun 9 ott 2006, 14:28
da francogdn
Se è un raid software:

Codice: Seleziona tutto

#!/bin/sh
if cat /proc/mdstat|grep ‘blocks’|grep -v ‘UU’ ; then
cat /proc/mdstat |mail -s “Problema RAID su ‘hostname‘” mail@example.org
fi
Non per farmi pubblicità, c'è un articoletto sul mio sito ;)

Implementare un software raid con Slackware

Ciao.

P.S. Dimenticavo di dire che va schedulato con crontab...

Inviato: lun 9 ott 2006, 15:33
da Pandorix
francogdn ha scritto:Se è un raid software:
Purtroppo è un raid hardware fatto con il controller LSI della scheda madre. Però se mi spieghi che cosa significano questi passaggi, forse posso adattare lo script alle mie esigenze(c'è un log apposito del raid che si chiama spy.log):

Codice: Seleziona tutto

#!/bin/sh
if cat /proc/mdstat|grep ‘blocks’|grep -v ‘UU’ ; then
[/quote]

Inviato: lun 9 ott 2006, 15:42
da francogdn
Ok traduco.
Se dai un cat /proc/mdstat ricevi un output di questo tipo:

Personalities : [linear] [raid0] [raid1] [raid5]
read_ahead 1024 sectors
md0 : active raid1 sda1[1] sdb1[0]
1469824 blocks [2/2] [UU]

Mettiamo caso che questo array sia degradato. Avrei questo output:

md0 : active raid1 sda1[1] sdb1[0]
1469824 blocks [2/1] [U_]

Lo script che ti ho postato dice: "Vediamo se, dove compare blocks (grep 'blocks'), esiste una situazione che non sia [UU] (grep -v ‘UU’). Se è così, mando una mail con soggetto Problema RAID su `hostname` e come contenuto l'output di cat /proc/mdstat all'indirizzo mail@example.org".

Dimmi se qualcosa non è chiaro :)

Inviato: lun 9 ott 2006, 15:50
da Pandorix
francogdn ha scritto:Ok traduco.
Se dai un cat /proc/mdstat ricevi un output di questo tipo:

Personalities : [linear] [raid0] [raid1] [raid5]
read_ahead 1024 sectors
md0 : active raid1 sda1[1] sdb1[0]
1469824 blocks [2/2] [UU]

Mettiamo caso che questo array sia degradato. Avrei questo output:

md0 : active raid1 sda1[1] sdb1[0]
1469824 blocks [2/1] [U_]

Lo script che ti ho postato dice: "Vediamo se, dove compare blocks (grep 'blocks'), esiste una situazione che non sia [UU] (grep -v ‘UU’). Se è così, mando una mail con soggetto Problema RAID su `hostname` e come contenuto l'output di cat /proc/mdstat all'indirizzo mail@example.org".

Dimmi se qualcosa non è chiaro :)
Ok adesso è chiaro, grazie :-)
Però ho ancora un dubbio, per mandare la mail è necessario che sia configurato un qualche server, programma o simile di mail?

Inviato: lun 9 ott 2006, 16:02
da francogdn
Sì. Purtroppo lo script che ti ho postato sottointende che ci sia configurato un sistema di relaying smtp.
In alternativa dall'interno della if potresti richiamare uno script (es. php, python...) che manda una mail utilizzando un smpt che risiede su un'altra macchina...

Boh, buon divertimento :badgrin:

Inviato: lun 9 ott 2006, 16:05
da Pandorix
francogdn ha scritto:Sì. Purtroppo lo script che ti ho postato sottointende che ci sia configurato un sistema di relaying smtp.
In alternativa dall'interno della if potresti richiamare uno script (es. php, python...) che manda una mail utilizzando un smpt che risiede su un'altra macchina...

Boh, buon divertimento :badgrin:
Azz :?
E se volessi mandare un messaggio tipo net send di windows, ad un'altra macchina? C'è un comando simile in linux?
O un modo per fargli emettere un bip per un tot di tempo?
Miiii che compicata sta cosa ;)

Inviato: lun 9 ott 2006, 16:18
da francogdn
Ma come mai mi vengono in mente cose incasinate??? :shock:

Pensa un po' che adesso mi è venuto in mente LinPopUp

:badgrin:

Inviato: lun 9 ott 2006, 16:20
da francogdn
Va beh, ci sono anche i comandi wall e smbclient -m <nomehost> . Forse LinPopUp non è la soluzione più indicata per un server.

Non sono molto preparato sull'argomento... :P

Inviato: lun 9 ott 2006, 16:31
da Pandorix
francogdn ha scritto:Va beh, ci sono anche i comandi wall e smbclient -m <nomehost> . Forse LinPopUp non è la soluzione più indicata per un server.

Non sono molto preparato sull'argomento... :P
smbclient potrebbe essere la soluzione vincente, solo che...se il pc windows a cui mando il messaggio è un 98, funziona?(non mi pare che il comando net send esista con quel s.o.)

Inviato: lun 9 ott 2006, 16:32
da Pandorix
francogdn ha scritto:Va beh, ci sono anche i comandi wall e smbclient -m <nomehost> . Forse LinPopUp non è la soluzione più indicata per un server.

Non sono molto preparato sull'argomento... :P
smbclient potrebbe essere la soluzione vincente, solo che...se il pc windows a cui mando il messaggio è un 98, funziona?(non mi pare che il comando net send esista con quel s.o.)

Inviato: lun 9 ott 2006, 16:38
da Pandorix
francogdn ha scritto:Va beh, ci sono anche i comandi wall e smbclient -m <nomehost> . Forse LinPopUp non è la soluzione più indicata per un server.

Non sono molto preparato sull'argomento... :P
smbclient potrebbe essere la soluzione vincente, solo che...se il pc windows a cui mando il messaggio è un 98, funziona?(non mi pare che il comando net send esista con quel s.o.)

Inviato: lun 9 ott 2006, 16:45
da Pandorix
Scusate la ripetizione, mi dava un errore quando tentavo di postare.

Comunque, smbclient funziona(almeno con XP). Adesso però mi sorge un altro quesito....come posso modificare lo script per fare in maniera che controlli il file di log del raid(che è /var/log/Spy.log) e mandi il messaggio soo in caso di differenza rispetto al mesaggio che ha mandato prima? Mi spiego meglio: mettiamo che il raid salta, lo script manda il messaggio e chi di dovere risolverà il problema. Lo script è schedulato per partire ogni ora. Se dopo 3 ore il raid è rimesso in funzione e ancora funziona, lo script continua in ogni caso a mandare il messaggio perchè trova nel log le parole che gli o imposto di cercare. io vorrei evitare questo, cioè fare in modo che lo script controlli se è cambiato qualcosa oppure no, tipo con una espressione regolare che verifica l'ora corrente e quella sul log....
Spero di essere stato chiaro :?

Inviato: lun 9 ott 2006, 16:55
da francogdn
Non so se funziona con windows 98...

Comunque il file /proc/mdstat non è un file di log comune... Visualizza in tempo reale lo stato dei dischi, quindi una volta risolto il problema non avrai più traccia di [U_], ma solo di [UU].

Com'è strutturato Spy.log?

Inviato: lun 9 ott 2006, 16:59
da Pandorix
francogdn ha scritto:Non so se funziona con windows 98...

Comunque il file /proc/mdstat non è un file di log comune... Visualizza in tempo reale lo stato dei dischi, quindi una volta risolto il problema non avrai più traccia di [U_], ma solo di [UU].

Com'è strutturato Spy.log?
E' un log comune, sembra. Tiene traccia delle operazioni di rottura e ricostruzione del raid.
Comunque credo di aver risolto, dopo aver mandato il messaggio con smbclient, cancello il contenuto del log e il gioco è fatto :-)
Grazie mille degli aiuti e della pazienza :)