Sponsors

Google
- Epoch Time
A quick idea by Chris Rowe follow me @chrisrowe  •  Help spread the word and tweet about this site  •  What's the Epoch

Script Queue mail QMAIL

Come al solito pubblico un articolo dopo aver avuto delle particolari necessità, questa volta dovevo mettere sotto monitoraggio il mail server, qmail.
Succedeva che per quelche motivo il DNS server al quale puntavo non riconosceva alcuni domini, il problema diventa serio quando un cliente prende l'hosting da me e lascia la posta su un'altro provider, configuo dominio e tutto va bene, fin quando perà le mail che partivano dal mio server restavano in coda.
Ci ho messo un po a capire che la mancata consegna della posta fosse dovuta da un record DNS non esatto.
Modificando il file /etc/resolv.conf e mettendo in testa il DNS di google tutto filava liscio.
Vista la brutta esperienza, considerando che gran parte dell'hosting offerto ospita siti di commercio elettronico, o comunque aziendiali, ho deciso di mettere un semplice script che possa avvisarmi quanso c'è coda e quando le mail non vengono processate.


G4PLAY

#!/bin/bash

# Verifico le mail in CODA e in CODA NON PROCESSATE

# SE LA CODA (Q) E' MAGGIORE DI 1 E LA

# CODA NON PREOCESSATA (QNP) MAGGIORE DI 0

# INVIO UNA MAIL IN FORMATO HTML



DOMINIO="lbit-solution.it"

DESTINATARIO="supporto"

NOMEDEST="Supporto LBiT"

DIR="/var/monitoraggio/script"



# CODA ATTIVA

/var/qmail/bin/qmail-qstat |grep -v not|awk '{print $4}' > $DIR/queue



# MAIL IN CODA NON PROCESSATE

/var/qmail/bin/qmail-qstat |grep -i not|awk '{print $8}' > $DIR/queuen



Q=`cat $DIR/queue`

QNP=`cat $DIR/queuen`

if [ $(cat $DIR/queue) -gt "1" ] || [ $(cat $DIR/queuen) -gt "0" ]

then

cat > /tmp/alertQueue.html <<DT

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="content-type" content="text/html; charset=windows-1250">

<title>Alert filesystem</title>

</head>

<body>

<h1 >MAIL IN CODA VERIFICARE IL MAIL SERVER Q=$Q QNP=$QNP</h1>

<h3>Attenzione, il mail server non riesce a smaltire o a consegnare alcune mail </h3>

<p><a href="http://www.lbit-solution.it/monitoraggio/index.php">Pagina di monitoraggio</a></p>



<br />

Ci sono <b>$Q</b> mail in coda e <b>$QNP</b> mail non processate. <br />

<br />

<p>

Di seguito le mail in coda:<br />

$( /var/qmail/bin/qmail-qread|tr -d '\011'|sed -e :a -e '$!N;s/\nremote//;ta' -e 'P;D'|sed -e 's/</mittente: /g' -e 's/>/ destinatario:/g' | while read queue; do

echo "$queue <br />"

done)

</p>

<br />



<h5><a href="http://www.lbit-solution.it">Mail send by LBiT soluzioni informatiche</a></h5>



</body>

</html>

DT



(cat <<EOCAT

Subject: [$(hostname)] Queue Mali Alert Q $Q QNP $QNP

MIME-Version: 1.0

Content-Type: text/html

Content-Disposition: inline

From:$(hostname) <no-replay@$DOMINIO>

Reply-To:$NOMEDEST<$DESTINATARIO@$DOMINIO>

EOCAT

cat /tmp/alertQueue.html) | /usr/sbin/sendmail supporto@lbit-solution.it

rm -f /tmp/alertQueue.html



fi

Finito lo script è stato messo in crontab e gira ogni 5 minuti, devo dire che diversi provider esterni hanno dei tempi lentissimi nel ricevere la posta, questo banale script mi consente di offrire un servizio migliore e di accorgermi di eventuali problemi prima del cliente.

Script controllo filesystem

Negli ultimi mesi non ho postato nessun articolo, non per voglia ma per tempo.
Riprendo degli argomenti che volevo affrontare nei mesi scorsi ma non ho potuto, il controllo dei dischi con alert mail.
Come al solito nulla di complicato, scriviamo uno script che controlla lo spazio disco e, se inferiore ad una data percentuale, provvede ad in inviare una mail in formato HTML, nel contenuto della mail ci sarà anche il link ad una pagina di gestione per sistemi con IP DINAMICI.

Ecco il codice:

1 #!/bin/bash
2 # SCRIPT ELSAMU VPS
3 # FILESYSTEM /media/160 GIGA
4 ### CONFIG ####
5 FSCHK="/var/www/vhosts"
6 DSCHK="/dev/vzfs"
7 WEBPAGE=""
8 rm -f index.html
9 INTIP="`/sbin/ifconfig eth0 |grep -i inet|head -1|awk '{print $2}'|sed -e 's/addr://g'`"
10 EXTIP="`wget http://www.indirizzo-ip.com/;grep -i TITLE index.html |awk '{print $3}'|sed -e 's/<\/TITLE>//g'`"
11 SPACE=`df -h $DSCHK|awk '{print $5}'|tail -1|sed -e 's/%//g'`
12
13 #### INIZIO SCRIPT
14
15 if [ $SPACE -gt 85 ]
16   then
17 cat > /tmp/alert.html <<DT
18 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
19 <html>
20 <head>
21 <meta http-equiv="content-type" content="text/html; charset=windows-1250">
22 <title>Alert filesystem</title>
23 </head>
24 <body>
25 <h1 style="color: red">RISCHIO FILESYSTEM FULL</h1>
26 <h3>ATTENZIONE FILESYSTEM $SPACE %</h3>
27 <p>HOSTNAME: <b>`hostname`</b></p>
28 <p>PUBBLIC IP: <b>$EXTIP</b></p>
29 <p><a href=`echo "\"http://$EXTIP$WEBPAGE\""`>WEB  PAGE INFO SERVER </p></h5>
30
31
32 <p> <b>STATO FILESYSTEM:</b><br />
33 $(df -h $DSCHK|while read line;
34 do echo "$line <br />"
35 done) </p>
36
37 <p><b>LA DIRECTORY $FSCHK OCCUPA:</b><br />
38 $(du -sh $FSCHK|tail -1)
39 </p>
40
41 <p> <b>STATO FILESYSTEM GENERALE:</b><br />
42 $(df -h|while read line;
43 do echo "$line <br />"
44 done)  </p>
45
46 <br />
47 <h5><a href="http://www.lbit-solution.it">Mail send by LBiT soluzioni informatiche</a></h5>
48 </body>
49 </html>
50
51
52 DT
53
54 (cat <<EOCAT
55 Subject: [ELSAMU-VPS] File System Alert $SPACE
56 MIME-Version: 1.0
57 Content-Type: text/html
58 Content-Disposition: inline
59 EOCAT
60 cat /tmp/alert.html) | /usr/sbin/sendmail supporto@lbit-solution.it
61   rm -f /tmp/alert.html
62   rm -f index.html
63 echo "[$(date +'%F %H:%M:%S')] Filesystem alert - $(df -h $DSCHK|awk '{print $5}'|tail -1|sed -e 's/%//g')% in uso" >> /var/log/chkdsk.log
64 else
65 echo "[$(date +'%F %H:%M:%S')] Filesystem nella norma - $(df -h $DSCHK|awk '{print $5}'|tail -1|sed -e 's/%//g')% in uso" >> /var/log/chkdsk.log
66 fi
67
 


Ora basta mettere in crontab lo script e sperare che il disco non si saturi mai:
00 * * * * /var/script/chkdisk.sh

Per personalizzare lo script basta cambiare le variabili alla riga 5, 6 e7 e la percentuale oltre la quale deve partire la mail a riga 15; alla riga 60 troviamo invece l'indirizzo al quale inviare la mail.

Bash e mio figlio

Mio figlio non mi lascia lavorare, ha ragione prima dobbiamo giocare con loro e poi pensare al nostro lavoro.
Il pinguino mi aiuta a distrarlo mentre finisco alcune pratiche urgenti:

sleep 1;clear;echo ciao SAMUEL|cowsay ; sleep 1;clear;echo "ALLONTANATSI DALLA LINEA GIALLA"|cowsay ;sleep 2;sl;sl;clear;echo "TRENO IN TRANSITO AL BINARIO 1"|cowsay ;sleep 2; sl -F; sl -l;sl -e

Se poi gli mettiamo un loop abbiamo un nuovo gioco!
  while true; do sleep 1;clear;echo ciao SAMUEL|cowsay ; sleep 1;clear;echo "ALLONTANATSI DALLA LINEA GIALLA"|cowsay ;sleep 2;sl;sl;clear;echo "TRENO IN TRANSITO AL BINARIO 1"|cowsay ;sleep 2; sl -F; sl -l;sl -e; done

Un simpatico treno che attraversa il nostro schermo, una mucca controllore! Con un pò di fantasia possiamo farlo diventare un vero gioco, magari con frasi randomiche.

Google Maps sentieri e natura

Cosa si sta inventando di nuovo GOOGLE? Dopo Maps, Street View, Traffico  arrivano i sentieri, si si proprio i sentieri.
Googla si sta tuffando nella natura per poter fotografare tutto quello che ci circonda, in qesto modo comodamente dal nostro PC potremo vedere posti lontanissimi e valutare le nostre future mete, darà la possibilità di guardare luoghi irraggiungibili per molti.
Grande Big G



URL SEO OPENCART ARUBA

Uno delle prime operazioni da fare per ottimizzare il nostro sito di e-commerce è creare delle URL SEO-friendly, ma usando OpenCart su server Linux Aruba potremo avere dei problemini, ovvero ricevere la schermata di ERROR 500 e sito DOWN!

Niente di preoccupante, OpenCart prevede di base la possibilità di usare dei link SEO friendly, o URL semplici, in effetti nel pacchetto d'installazione troviamo un file .htaccess.txt, ed è proprio lui che sui server Aruba ci fa restituire error 500.

Per risolvere questo basta modificare il file .htaccess lasciando solo queste entry:

#Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^(.*)$ ./index.php/$1 [L]
RewriteRule ^(.*)\?*$ index.php?_route_=$1 [L,QSA]


Ricordiamoci dal pannello amministrativo, su SISTEMA/IMPOSTAZIONI/SERVER, e spostiamo il flag su SI di Usa URL SEO.

Per ogni categoria, prodotto e pagina dobbiamo valorizzare il campo URL SEO come nell'esempio:
processori_amd per la categoria Processori AMD, cosi verrà costruito un link del tipo
http://www.tuttoperilpc.it/Informatica


Cancellare i riassunti da wordpress

A volte i riassunti prodotti dai plugin di wordpress non sempre facilitano la gestione del sito, anzi a volte ci obbligano a rimuovere l'html.


Inizialmente rimuovevo il codice html da tutti i riassunti che davano problemi, con il tempo gli articoli aumentiavano e i riassunti errati rendevano il sito non fruibile, per risolvere basta fare l'update di una tabella, posto il codice PHP in modo da poter fare una pagina da poter richiamare con il browser:


<?php
print "HO CANCELLATO I RIASSUNTI DI GIANDIEGO MARIGO \n";
$conn = mysql_connect("62.149.150.95", "utente", "password");
mysql_select_db('photogulp');
$sql=" UPDATE `photogulp`.`PHOTOGULP_posts` SET `post_excerpt` = '' WHERE `PHOTOGULP_posts`.`post_author` =62";
mysql_query($sql);
mysql_close($conn)
?>
<br> 
 
 

Buon compleanno GOOGLE



Buon compleanno big G, oggi compie 13 anni di gloriosa vita, credo che ben pochi progetti in rete abbiano avuto una vita cosi lunga.
Nasce come motore di ricerca e ora "alberga" nei nostri telefoni cellulari, ci dice dove andare snobbando il Tom Tom, archivia i nostri documenti, la posta, ci aiuta realizzare i siti, ci fa navigare con CHROME, ospita i nostri blog, possiamo videochiamare, ecc... Ma quante cose fa? TUTTO! E per ora dopo Buzz e arriva GOOGLE +1, il social network che farà tremare FACEBOOK.

Auguroni alla società numero 1

Rotazione banner con PHP

Oggi posto un pratico e banale codice PHP per inserire nelle proprie pagine dei banner a rotazione.
Questo torna comodo quando non vogliamo riempire le pagine del nostro sito con decine di banner, inseriamo il codice sottoriportato e avremo la rotazione delle nostre campagne pubblicitarie, un po come google adsense. Io personalmente uso diversi siti di affiliazione e nel caso specifico ZANOX non ha questa comoda funzione, a questo ci aiuta PHP.

Apportare modifiche è semplice, settare quanti banner vogliamo inserire alla riga 2 sostituendo il valore 9 con qello desiderato; ogni elsif è un banner e il codice va inserito tra gli apici della "print", semplice.

Il risultato è la rotazione di banner randomici ad ogni visualizzazione della pagina, quando avrò tempo vorrei inserire del codice java per farli ruotare senza il refresh della pagina in visualizzazione.


CODICE PHP:
<?php
$random = random(1,9);
if ($random == 1) //Commento per Codice 1
print '<a target="_blank" href="http://ad.zanox.com/ppc/?19502843C1575357854T"><img src="http://ad.zanox.com/ppv/?19502843C1575357854" align="bottom" width="468" height="60" border="0" hspace="1" alt="InMediolanum Direct - Image Banner 468 x 60"></a>';

elseif ($random == 2) //Commento per Codice 2
print '<a target="_blank" href="http://ad.zanox.com/ppc/?18982653C558409180T"><img src="http://ad.zanox.com/ppv/?18982653C558409180" align="bottom" width="468" height="60" border="0" hspace="1" alt="Prenota online i voli economici eDreams!"></a>';

elseif ($random == 3) 
print '<a target="_blank" href="http://ad.zanox.com/ppc/?19502859C320315674T"><img src="http://ad.zanox.com/ppv/?19502859C320315674" align="bottom" width="468" height="60" border="0" hspace="1" alt="New Direct Image Banner 468x60"></a>';

elseif ($random == 4) 
print '<img src="http://ad.zanox.com/ppv/?19502861C750326682" align="bottom" width="1" height="1" border="0" hspace="1"><script language="javascript" src="http://ad.zanox.com/ppv/images/programs/flash_load/flash_loader_ng.js"></script><script type="text/javascript">zxFlash("http://static.it.groupon-content.net/affiliate/dynamic_banner/cid_dynamic_banner_groupon_468x60_plain_it_IT_zanox.swf", "", 468, 60, "opaque", "http://ad.zanox.com/ppc/?19502861C750326682&ULP=", "XXX");</script>';

elseif ($random == 5) 
print '<a target="_blank" href="http://ad.zanox.com/ppc/?19502866C1336435436T"><img src="http://ad.zanox.com/ppv/?19502866C1336435436" align="bottom" width="468" height="60" border="0" hspace="1" alt="New Image Banner 468 x 60"></a>';

elseif ($random == 6) 
print '<a target="_blank" href="http://ad.zanox.com/ppc/?19502867C1668787694T"><img src="http://ad.zanox.com/ppv/?19502867C1668787694" align="bottom" border="0" hspace="1" alt="promozione Pr&#65533;natal"></a>';

elseif ($random == 7)
print '<img src="http://ad.zanox.com/ppv/?19502868C1938169590" align="bottom" width="1" height="1" border="0" hspace="1"><script src="http://bs.serving-sys.com/BurstingPipe/adServer.bs?cn=rsb&c=28&pli=2292040&PluID=0&w=468&h=60&ord=[timestamp]&ucm=true&ncu=http://ad.zanox.com/ppc/%3F19502868C1938169590%26ULP%3D"></script><noscript><a target="_blank" href="http://ad.zanox.com/ppc/?19502868C1938169590&ULP=http://bs.serving-sys.com/BurstingPipe/adServer.bs?cn=brd&FlightID=2292040&Page=&PluID=0&Pos=6023" target="_blank"><img src="http://bs.serving-sys.com/BurstingPipe/adServer.bs?cn=bsr&FlightID=2292040&Page=&PluID=0&Pos=6023" border=0 width=468 height=60></a></noscript>';

elseif ($random == 8)
print '<a target="_blank" href="http://ad.zanox.com/ppc/?19502874C1192392898T"><img src="http://ad.zanox.com/ppv/?19502874C1192392898" align="bottom" width="468" height="60" border="0" hspace="1" alt="468x60.gif"></a>';

elseif ($random == 9)
print '<a target="_blank" href="http://ad.zanox.com/ppc/?19502873C1243644210T"><img src="http://ad.zanox.com/ppv/?19502873C1243644210" align="bottom" border="0" hspace="1" alt="7 mega 468x60"></a>';
?>

LBiT soluzioni informatiche

Link and Search

Solo lei

Solo lei ha quel che voglio

So di esser pronto ed è già da un pò che ci penso ma tutto quel che so è che so bene con lei ma non capisco cosa intende fare dove vorrà arrivare. Non mi ha mai visto prima ma ora al mondo ci siamo solo io e lei, la conosco da un minuto l'ho appena trovata e già l'ho perduta resta una sconosciuta, un mistero e chissà se è vero quel che i suoi occhi mi stanno dicendo di lei, io lo spero e sta volta è per davvero e tutto questo perchè se puoi io so... può lasciarsi andare e l'accompagnerò e domani ti giuro che me ne andrò può lasciarsi andare e l'accompagnerò e poi ti giuro che sparirò...
Solo lei ha quel che voglio e sono io ciò che sta cercando.
Questa notte potrei darle il mondo potrei darle tutto ciò che cerca ciò di cui ha bisogno quindi molla il tipo che è con te o mi perderai, potresti non rivedermi mai più non si sa mai, non sa cosa sta rischiando pensa che stia scherzando ma sono io ciò che sta cercando, no di sicuro l'uomo che è con lei perchè questa serata spero l'abbia solo accompagnata, mi servon due minuti ma ti assicuro che verrà e questa notte durerà un'eternità, e il mondo gira solo perchè ora c'è lei solo per il suo sguardo che mi fa prendere il volo, muoio, la conosco appena e già vivo per ogni suo respiro ti giuro non ti prendo in giro e mentre l'ammiro mi accorgo quanto sia stupenda e hai sbagliato se pensi che m'arrenda...
Solo lei ha quel che voglio e sono io ciò che sta cercando.
Il mio intuito mi ha spinto e solo ora capisco perchè come un druido ho il fluido che fa per lei non conta quanto sia durato ma che sia stato qualcosa per cui vale la pena d'aver vissuto e quindi lascio che la storia abbia il suo corso naturale ma ti prego fammi capire perchè sto male perchè so che domani io mi sveglierò e sarò ancor del suo profumo intriso dal suo sorriso ucciso ma io sarò con la mia donna e lei col suo uomo visto che ho scoperto che è l'unica lei è la sola....
Solo lei ha quel che voglio e sono io ciò che sta cercando.

top