Archivi tag: regex

Swatch, Apache e base rate fallacy a palla

In questo post vi ho mostrato una possibile configurazione di swatch per ciò che concerne il monitoraggio delle richieste inoltrate ad un server Web. 

apache, swatch, regex, pattern, log, HTTP error code

Ovviamente tale configurazione è molto simile a quella che attualmente gira sui miei server, ragion per cui ho avuto modo di testarla in modo massiccio. Un effetto colletarale che mi è saltato all’occhio quasi immediatamente riguardava i falsi positivi, ovvero pattern del tutto innocui che swatch mi segnalava come errori HTTP.

Mi spiego meglio. Data una entry del file di log simile alla seguente:

192.168.x.x - jumbo [30/Jul/2012:16:03:20 +0200] "GET /prova.php HTTP/1.1" 200 4036 "https://www.pincopallo.it/prova.php" "Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1"

essa mi veniva segnalata come HTTP Forbidden (errore 403) per via del 4036.

Il file di log contenente il giusto codice di errore dovrebbe avere una forma simile alla seguente:

79.55.x.x - jumbo [30/Jul/2012:21:28:53 +0200] "GET /prova.php HTTP/1.1" 403 773 "-" "Mozilla/5.0 (Windows NT 6.1; rv:10.0) Gecko/20100101 Firefox/10.0"

Ovvero il codice di errore è sempre preceduto e seguito da uno spazio vuoto.

Alla luce di tali considerazioni le regex da settare su swatch diventano le seguenti:

#HTTP Forbidden
watchfor  / 403 /
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: Access Forbidden

#HTTP Not Found
watchfor  / 404 /
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: Not Found

#HTTP Internal Server Error
watchfor  / 500 /
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: Internal Server Error

#HTTP OK
watchfor  / 200 /
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: Hit OK

Quindi, poichè i pattern da matchare devono essere contenuti all’interno dei due slash (/), è bastato aggiungere uno spazio prima e dopo del codice di errore.

Enjoy.

autovodafone versione 0.3: esecuzione senza privilegi di root e riduzione del numero di file temporanei

Dopo le versioni 0.1 e 0.2 di autovodafone, ecco la versione 0.3 ulteriormente ottimizzata rispetto alle precedenti:

mms3.jpg

#!/bin/bash

#File di log
FILELOG=/var/log/autovodafone

data=$(date)

echo "Inserisci il destinatario:"

read destinatario

if [[ ! $destinatario =~ "+39" --; then

destinatario="+39$destinatario"

fi

echo "Inserisci l'oggetto del messaggio:"

read oggetto

echo "Inserisci il testo del messaggio:"

read testo

echo "$testo" > text

cat text | sed -f urlencoding.sed > encoded

enc=$(cat encoded)

curl -c cookiev.txt -F "username=vostrousername" -F "password=vostrapassword" https://www.vodafone.it/190/trilogy/jsp/login.do 2&>1
curl -b cookiev.txt --data "recipient=$destinatario&subjecttosend=$oggetto&SmilName=&TextName=$enc&ImageName=&AudioName=&nextPage=/web/servletresult.html" http://mmsviaweb.net.vodafoneomnitel.it/WebComposer/web/elaborapop.jsp | grep -o -E '"s*(.*)>(.*)"' > out

sed -n -e s/"//g -e "s/ /+/g" -e "2p" out > out1

url="http://mmsviaweb.net.vodafoneomnitel.it"

url1=$(cat out1)

url2=$(echo "$url$url1")

curl -b cookiev.txt $url2 > result

if grep -q "SendMessage=1" result;then

echo "messaggio inviato"

echo "$data: messaggio inviato" >> $FILELOG

else

echo "il messaggio non e' stato inviato"

echo "$data: il messaggio non e' stato inviato" >> $FILELOG

fi

rm out*

rm cookiev.txt

rm text

rm encoded

rm result

exit 0

In particolare, mediante il comando:

sed -n -e s/"//g -e "s/ /+/g" -e "2p" out > out1

ho ridotto il numero di file temporanei, grazie all’utilizzo ottimizzato di sed (espressioni multiple).

Per poter eseguire lo scrip senza i privilegi di root, dovete prima identificare il proprietario dei seguenti file:

autovodafone

urlencoding.sed

/var/log/autovodafone

e nel caso in cui ce ne fosse bisogno, potete modificare il loro owner mediante il comando:

nightfly@nightbox:~$ sudo chwon vostrouser:vostrogruppo nomefile

A questo punto l’esecuzione dello scrip senza privilegi di root dovrebbe filare liscia.

Bye.

Aggiornamento

Il servizio Vodafone MMS gratis da Web non esiste più (ne è la riprova il timeout che ci becca ad ogni tentativo di contattare la URL http://mmsviaweb.net.vodafoneomnitel.it). Per maggiori informazioni potete consultare questo 3d.