Étape 3: Surveillance Script
#Script pour entrer dans le statut de garage en DB
#Joe McManus 2010/01/26
#who courrier devrait aller à
$mailto = "joe
courrier de #who arrive de
$mailfrom = "garagemon
#set le temps
$now = date ('Y-m-d h le: i') ;
#web statut url
$garageurl="pink.example.com/garagemon-text.html" ;
#public url à inclure dans la page pour vérifier le statut en ligne
$puburl = « http://www.example.com/garage.php » ;
function connect(&$db) {}
$db = mysql_pconnect ("localhost", « garage », « monitor ») ;
Si (mysql_select_db (« garagemon », $db)) {}
} else {}
echo "Désolé, nous sommes actuellement des expériences des questions techniques. Nous serons de retour bientôt. ";
"sortie" ;
}
}
Connect($dB) ;
#check la page
système ("curl $garageurl -o /tmp/garage.txt", $retval) ;
Si ($retval == 1) {}
echo "erreur : impossible d’atteindre le serveur web" ;
"sortie" ;
}
#Get le statut de porte
$overhead = exec ('grep Overhead /tmp/garage.txt | cut -d ""-f2 ") ;
$side = exec ('grep côté /tmp/garage.txt | cut -d ""-f2 ") ;
#insert la porte de côté dans la DB
$insert = "insert into statut (id, date, porte, statut)" ;
$insert. = "valeurs ('', now(), « côté », « $side »)" ;
$result = mysql_query ($insert, $db) ;
#insert la porte de garage dans la DB
$insert = "insert into statut (id, date, porte, statut)" ;
$insert. = "valeurs ('', now(), « overhead », « $overhead »)" ;
$result = mysql_query ($insert, $db) ;
echo "Overhead : $overhead" ;
echo "côté : $side" ;
#Query pour les portes sont ouvertes 10 minutes ou plus.
$query =' sélectionnez date, porte, état de situation où statut = "Open" et la date > date_sub(now(), intervalle de 10 minutes)' ;
$result = mysql_query ($query, $db) ;
$rowcount=mysql_num_rows($result) ;
$mailfile="/tmp/garagemail.txt" ;
Si ($rowcount > = 2) {}
echo "Alert : porte ouverte" ;
Début de message
$mailsubject = "alerte : Garage porte ouverte $now" ;
$mailmsg = "the Garage moniteur 3001 a détecté qu’une porte a été ouverte pendant plus de 10 minutes. $now ";
$mailmsg. = « $puburl » ;
{if(file_exists($mailfile))}
echo « Mail non envoyé $mailfile existe » ;
} else {}
mail ($mailto, $mailsubject, $mailmsg) ;
exec ("/ bin/touch $mailfile") ;
}
} else {}
{if(file_exists($mailfile))}
echo "Alert : porte de Garage fermé $now" ;
$mailsubject = "alerte : porte de Garage fermée » ;
$mailmsg = "the Garage moniteur 3001 a détecté qu’une porte a été fermée. $now ";
$mailmsg. = « $puburl » ;
mail ($mailto, $mailsubject, $mailmsg) ;
exec ("/ bin/rm $mailfile") ;
}
}
#Just une requête pour le débogage
$query =' sélectionnez date, porte, statut statut si date > date_sub(now(), intervalle de 10 minutes)' ;
$result = mysql_query ($query, $db) ;
echo "porte | statut | Date ";
{while($Row=mysql_fetch_row($result))}
echo "$row [0] | $row [1] | $row [2] ";
}
? >