Plugin phpScheduleIt – checksrv.php

Script PHP checksrv.php
Contrôle la disponibilité d’un serveur

Pré-requis sur l’utilisation de PHP en cron:

http://www.devarticles.com/c/a/PHP/PHP-CLI-and-Cron/

checksrv.php

#!/usr/bin/php -q

#WELCOME
#print « check_dispo.php »;

//Date
$today = date(‘d-m-Y’);
$today_us = date(‘m-d-Y’);
$today_timestamp = strtotime(date(‘Ymd’));

$days = array(« Monday », »Tuesday », »Wednesday », »Thursday », »Friday », »Saturday », »Sunday »);
$jours = array(« Lundi », »Mardi », »Mercredi », »Jeudi », »Vendredi », »Samedi », »Dimanche »);

$months = array(« January », »February », »March », »April », »May », »June », »July », »August », »September », »October », »November », »December »);
$mois = array(« Janvier », »Fevrier », »Mars », »Avril », »Mai », »Juin », »Juillet », »Aout », »Septembre », »Octobre », »Novembre », »Decembre »);

//Couleurs
function colorize($color,$string)
{

switch($color)
{
// INFOS COLORS
// ;40m <=> background dark

case « cyan »:
$out = « \033[36;40m".$string."\033[37m";
break;

case "red":
$out = "\033[31;40m".$string."\033[37m";
break;

case "red_bold":
$out = "\033[1;31;40m".$string."\033[0m";
break;

case "green":
$out = "\033[32;40m".$string."\033[37m";
break;

case "bggreen":
$out = "\033[42;30m".$string."\033[40;37m";
break;

}
return $out;

}

//MySQL

$MYSQL_HOST="********";
$MYSQL_USER="********";
$MYSQL_PASS="**********************";
$MYSQL_BDD="phpScheduleIt";

$link = mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS)
or die(mysql_error());

mysql_select_db( $MYSQL_BDD ) or die( mysql_error() );

$usage = $_SERVER["argv"][1];

switch($usage)
{
case « –help »:
print « Usage: ./check_dispo.php [options] \n »;
print « –hostname [hostname]\n »;
print « –list : affiche toutes les machines definies dans phpScheduleIt\n »;
print « \n »;
print « Example: ./check_dispo –hostname thieli\n »;
exit();
break;

case « –hostname »:
$hostname = $_SERVER["argv"][2];
break;

case « –list »:
$query = « SELECT name FROM resources GROUP BY name ORDER BY name ASC »;
$results = mysql_query($query) or die(mysql_error());

print « \n »;
while ($row = mysql_fetch_array($results))
{
print $row[name]. »\n »;
}
print « \n »;
return 0;
break;
}

if(!$hostname)
{
$query = « SELECT * FROM reservations, resources WHERE reservations.machid = resources.machid AND reservations.start_date <= « .$today_timestamp. » AND reservations.end_date >= « .$today_timestamp ;
}
else
{
$query = « SELECT * FROM reservations, resources WHERE reservations.machid = resources.machid AND reservations.start_date <= « .$today_timestamp. » AND reservations.end_date >= « .$today_timestamp. » AND resources.name like ‘ ».$hostname. »‘ » ;
}

$results = mysql_query($query) or die(mysql_error());

//init de la variable de resultats
$have_results = false;

while ($row = mysql_fetch_array($results))
{
if($row['name']) print colorize(« red_bold », »$row[name]« ). »\t »;

if($row['start_date']&&$row['end_date'])
{
//date de fin en couleur rouge !
$end_date = gmdate(« l d F Y H:i », $row['end_date']);
$end_date = str_replace($days, $jours, $end_date); // jours US -> FR
$end_date = str_replace($months, $mois, $end_date); // mois US -> FR
print colorize(« red », »reserve jusqu’au $end_date »). »\n »;
}

if($row['location']) print « |- ».$row['location']. »\n »;

if($row['notes']) print « |- ».$row['notes']. »\n »;

if($row['summary']) print « |- ».$row['summary']. »\n »;

$resid = $row['resid'];
//print « resid= ».$resid. » | « ;

$query2 = « SELECT * FROM reservation_users, login WHERE reservation_users.memberid=login.memberid AND reservation_users.resid=\ »".$resid. »\ »";

$results2 = mysql_query ( $query2 ) or die ( mysql_error() );

while ( $row2 = mysql_fetch_array ( $results2 ) )
{
print « |- ».colorize(« cyan », »$row2[fname] $row2[lname] \t $row2[phone] \t $row2[email]« ). »\n »;
}

print « \n »;
$have_results = true;
}

//si pas de reservation de la machine
//obtenir le machinid à partir du hostname
if($have_results == false)
{
$query3 = « SELECT machid, name FROM resources WHERE name like ‘ ».$hostname. »‘ »;
$results3 = mysql_query($query3) or die (mysql_error());
while( $row3 = mysql_fetch_array($results3) )
{
$machid = $row3['machid'];
}

if($machid)
{
//construction du message pour une machine libre
$free_msg = « \n ».colorize(« bggreen », »$hostname »). »\n »;
$free_msg .= « Reserver cette machine en cliquant sur le lien suivant:\n »;
$free_msg .= colorize(« green », »http://hostname/phpScheduleIt/schedule.php?date= ».$today_us. »\n\n »);
exit($free_msg);
}
else
{
print  » \nCette machine n’existe pas dans l’interface phpScheduleit\nPour ajouter la machine « .$hostname. » cliquez sur le lien suivant:\n »;
$url_add_srv = « http:// »; // URL à définir
print colorize(« green »,$url_add_srv. »\n\n »);
}
}

?>

.bash_profile

./checksrv.php –hostname hostname1

Autres articles susceptibles de vous intéresser :

App

One response to “Plugin phpScheduleIt – checksrv.php

  1. Ca manque de captures d’ecran !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Recent Tweets

Catégories