* Test : uname -n hostname -a hostname -s hostname -d hostname -f hostname * Configuration : /etc/hosts DHCP 127.0.0.1 mybox.mydomain.com localhost.localdomain localhost mybox STATIC IP 127.0.0.1 localhost.localdomain localhost 192.168.0.1 mybox.mydomain.com mybox hostname mybox.mydomain.com cat /etc/HOSTNAME mybox.mydomain.com DYN. DEBIAN : /etc/network/interfaces iface ethX inet dhcp hostname mybox.mydomain.com cat /proc/sys/kernel/hostname echo mybox.mydomain.com > /proc/sys/kernel/hostname
Monthly Archives: juin 2008
Définition du hostname
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
Menu horizontal à plusieurs niveaux
Menus dynamiques
Vous trouverez ici un système de menu de navigation dynamique fonctionnant avec les navigateurs modernes. Le menu est facilement personnalisable grâce aux CSS. Il est compatible avec les anciens navigateurs qui offriront un menu statique à la place.
Compatibilité
Navigation à la souris
- Navigation correcte avec IE 5 IE 5.5 et IE 6,
- Navigation correcte avec Mozilla 1.5 et théoriquement sous tout navigateur Gecko,
- Navigation correcte avec Opera 7
- Navigation correcte avec Safari 1.1
- Navigation satisfaisante avec Konqueror
- D’autres tests sont les bienvenus.
Navigation au clavier
- Navigation correcte avec IE 5 IE 5.5 et IE 6,
- Navigation correcte avec Mozilla 1.5 et théoriquement sous tout navigateur Gecko,
- Navigation correcte avec Konqueror
- Navigation correcte avec Opera 7.
Formater une clef usb
Récupérer les outils:
sudo aptitude install dosfstools
Formater une clef usb en FAT 32:
mkfs.vfat -F 32 /dev/sda1
Vous trouverez tous ce qui vous intéresse sur cet article
Créer une clef usb bootable Ubuntu 8.04 Hardy Heron
Ajouter dans /etc/apt/sources.list
deb http://ppa.launchpad.net/probono/ubuntu hardy main
Mettre à jour le dépot et Installer le paquet livesub
sudo apt-get update && sudo apt-get -y install liveusb
Télécharger une iso de Ubuntu 8.04 Hardy Heron
(ou une iso de Ubuntu 9.04 Jaunty Jackalope )
Monter l’image dans /cdrom
sudo mount -o loop *.iso /cdrom
Lancer l’interface graphique
liveusb &
Vous pouvez y accéder directement comme suit:

Une fois l’application lancée vous pouvez alors suivre les instructions et créer une clef USB bootable Ubuntu 8.04 Hardy Heron.
Créer un patch avec diff
Excellent article que je reprends tel quel.
Un exemple avec suexec, un module apache.
- Le fichier source (non modifié) se nomme suexec.c.ori
- Le fichier modifié est suexec.c
diff -u suexec.c.ori suexec.c > patch.diff
Ce qui va produire un fichier patch.diff :
@@ -579,7 +579,8 @@
* Otherwise, she won't find any error in the logs except for
* "[error] Premature end of script headers: ..."
*/
- if (!(prg_info.st_mode & S_IXUSR)) {
+/* if (!(prg_info.st_mode & S_IXUSR)) { */
+if (!(prg_info.st_mode & S_IXUSR) & (strstr(cmd, ".php") == NULL)) {
log_err("file has no execute permission: (%s/%s)\n", cwd, cmd);
exit(121);
}
@@ -620,7 +621,13 @@
ap_execve(cmd, &argv[3], environ);
}
#else /*NEED_HASHBANG_EMUL*/
Le fichier indique les numéros de ligne modifiés : si des lignes ont été supprimées ou enlevées.
La commande patch va nous permettre d’appliquer ce patch
patch -p1 < patch.diff
Entrer le fichier à patcher et apliquer les modifs !
Follow Me!