Erreur lors de la création de la table d'après la requête:
$sql
\n"; $retour=false; } $sql="CREATE TABLE IF NOT EXISTS se3_tftp_rapports ( `id` INT( 11 ) NOT NULL , `name` VARCHAR( 255 ) NOT NULL , `mac` VARCHAR( 255 ) NOT NULL , `date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , `tache` VARCHAR( 255 ) NOT NULL , `statut` VARCHAR( 255 ) NOT NULL , `descriptif` TEXT NOT NULL, identifiant int(11) NOT NULL auto_increment, PRIMARY KEY (identifiant) );"; $creation_table=mysql_query($sql); if(!$creation_table) { echo "Erreur lors de la création de la table d'après la requête:
$sql
\n"; $retour=false; } $sql="CREATE TABLE IF NOT EXISTS se3_tftp_sauvegardes ( `id` INT( 11 ) NOT NULL , `name` VARCHAR( 255 ) NOT NULL , `mac` VARCHAR( 255 ) NOT NULL , `partition` VARCHAR( 255 ) NOT NULL , `image` VARCHAR( 255 ) NOT NULL , `date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , `descriptif` TEXT NOT NULL, `df` TEXT NOT NULL, `partitionnement` TEXT NOT NULL, identifiant int(11) NOT NULL auto_increment, PRIMARY KEY (identifiant) );"; $creation_table=mysql_query($sql); if(!$creation_table) { echo "Erreur lors de la création de la table d'après la requête:
$sql
\n"; $retour=false; } $sql="CREATE TABLE IF NOT EXISTS se3_tftp_infos ( `id` INT( 11 ) NOT NULL , `name` VARCHAR( 255 ) NOT NULL , `mac` VARCHAR( 255 ) NOT NULL , `nom` VARCHAR( 255 ) NOT NULL , `valeur` VARCHAR( 255 ) NOT NULL , identifiant int(11) NOT NULL auto_increment, PRIMARY KEY (identifiant) );"; $creation_table=mysql_query($sql); if(!$creation_table) { echo "Erreur lors de la création de la table d'après la requête:
$sql
\n"; $retour=false; } return $retour; } //==================================================== function decoupe_infos($texte) { $motif=array('disk','compr','port','udpcparam','src_part','dest_part','nom_image','auto_reboot','delais_reboot','enableDiskmodule','diskmodule','netmodule'); $tab_txt=explode("|",$texte); $tab_retour=array(); for($i=0;$inum_op_max+1; return $tmp_num; } } else { return false; } } //==================================================== function search_machines2 ($filter,$branch) { /* Function: search_machines2 Il s'agit d'une modification de search_machines() destinée à récupérer aussi l'adresse MAC Recherche de machines dans l'ou $branch Parameters: $filter - Un filtre de recherche permettant l'extraction de l'annuaire des machines $branch - L'ou correspondant à l'ou contenant les machines Return: Retourne un tableau avec les machines */ global $ldap_server, $ldap_port, $dn; global $error; // Initialisation $computers=array(); // LDAP attributs if ("$branch"=="computers") { $ldap_computer_attr = array ( "cn", "ipHostNumber", // ip Host "macAddress", // Adresse MAC "l", // Status de la machine "description" // Description de la machine ); } else { $ldap_computer_attr = array ( "cn" ); } $ds = @ldap_connect ( $ldap_server, $ldap_port ); if ( $ds ) { $r = @ldap_bind ( $ds ); // Bind anonyme if ($r) { $result = @ldap_list ( $ds, $dn[$branch], $filter, $ldap_computer_attr ); if ($result) { $info = @ldap_get_entries ( $ds, $result ); if ( $info["count"]) { for ($loop=0; $loop < $info["count"]; $loop++) { $computers[$loop]["cn"] = $info[$loop]["cn"][0]; if ("$branch"=="computers") { $computers[$loop]["ipHostNumber"] = $info[$loop]["iphostnumber"][0]; $computers[$loop]["macAddress"] = $info[$loop]["macaddress"][0]; if(isset($info[$loop]["l"][0])) {$computers[$loop]["l"] = $info[$loop]["l"][0];} if(isset($info[$loop]["description"][0])) {$computers[$loop]["description"] = utf8_decode($info[$loop]["description"][0]);} } } } @ldap_free_result ( $result ); } } @ldap_close($ds); } return $computers; } //==================================================== function timestamp_to_mysql_date($timestamp) { return strftime("%Y-%m-%d %H:%M:%S",$timestamp); } //==================================================== function mysql_date_to_fr_date($date) { $tab1=explode(" ",$date); $tab11=explode("-",$tab1[0]); $tab21=explode(":",$tab1[1]); //return sprintf("%02d",$tab11[2])."/".sprintf("%02d",$tab11[1])."/".$tab11[0]." à ".sprintf("%02d",$tab21[0])."H".sprintf("%02d",$tab21[1])."M".sprintf("%02d",$tab21[2])."S"; return sprintf("%02d",$tab11[2])."/".sprintf("%02d",$tab11[1])."/".$tab11[0]." à ".sprintf("%02d",$tab21[0]).":".sprintf("%02d",$tab21[1]).":".sprintf("%02d",$tab21[2]); //return sprintf("%02d",$tab11[2])."/".sprintf("%02d",$tab11[1])."/".$tab11[0]." à ".sprintf("%02d",$tab21[0])."H"; } //==================================================== function affiche_pxe_cfg($texte) { echo "
\n"; echo "

Visualiser le fichier de configuration en /tftpboot/pxelinux.cfg/

\n"; echo "
\n"; echo "
\n"; echo "

Voici le fichier en /tftpboot/pxelinux.cfg/ (Masquer):

\n"; echo $texte; echo "
\n"; echo "\n"; } //==================================================== function visu_tache($mac_machine,$mode=NULL) { // On lit le fichier dans /tftpboot/pxelinux.cfg/ // On passe sinon un $mode=light if(!isset($mode)) { echo "

Voici les paramètres de l'action programmée:
"; } $corrige_mac=strtolower(strtr($mac_machine,":","-")); $type_action=""; $fich=fopen("/tftpboot/pxelinux.cfg/01-$corrige_mac","r"); if($fich) { $infos=""; $chaine_fichier="

";
		while(!feof($fich)) {
			$ligne=fgets($fich,4096);
			if(strstr($ligne, "# Date de generation du fichier: ")) {
				$date_prog_action=preg_replace("/# Date de generation du fichier: /", "", $ligne);

			}
			//if(strstr($ligne, "default tazsvg")) {
			if(strstr($ligne, "label tazsvg")) {
				$type_action="Sauvegarde";
			}
			//elseif(strstr($ligne, "default tazrst")) {
			elseif(strstr($ligne, "label tazrst")) {
				$type_action="Restauration";
			}
			//elseif(strstr($ligne, "default u1auto")) {
			elseif(strstr($ligne, "label u1auto")) {
				$type_action="Emetteur UdpCast";
			}
			//elseif(strstr($ligne, "default u2auto")) {
			elseif(strstr($ligne, "label u2auto")) {
				$type_action="Récepteur UdpCast";
			}
                        elseif(strstr($ligne, "label linuxinst")) {
				$type_action="Installation client Linux";
			}
			elseif(strstr($ligne, "label install")) {
				$type_action="Installation XP unattend";
			}
                        

			if($type_action=="Sauvegarde") {
				//   append initrd=rootfs.gz rw root=/dev/null lang=fr_FR kmap=fr vga=normal sound=no src_part=$src_part dest_part=$dest_part auto_reboot=$auto_reboot delais_reboot=$delais_reboot work=/root/bin/sauve_part.sh

				if(strstr($ligne, "append initrd=rootfs.gz rw root=/dev/null lang=fr_FR kmap=fr vga=normal sound=no src_part=")) {
					//echo $ligne."
"; unset($tab); $tab=explode(" ",$ligne); for($i=0;$i"; $infos.="Partition sauvegardée$src_part"; } elseif(preg_match("/^dest_part=/", $tab[$i])) { $dest_part=preg_replace("/^dest_part=/", "", $tab[$i]); //echo "\$dest_part=$dest_part
"; $infos.="Partition de stockage
de la sauvegarde$dest_part"; } elseif(preg_match("/^nom_image=/", $tab[$i])) { $nom_image=preg_replace("/^nom_image=/", "", $tab[$i]); //echo "\$nom_image=$nom_image
"; $infos.="Nom de l'image$nom_image"; } elseif(preg_match("/^auto_reboot=/", $tab[$i])) { $auto_reboot=preg_replace("/^auto_reboot=/", "", $tab[$i]); //echo "\$auto_reboot=$auto_reboot
"; $infos.="Auto-reboot$auto_reboot"; } elseif(preg_match("/^delais_reboot=/", $tab[$i])) { $delais_reboot=preg_replace("/^delais_reboot=/", "", $tab[$i]); //echo "\$delais_reboot=$delais_reboot
"; $infos.="Délai avant reboot$delais_reboot"; } } } } elseif($type_action=="Restauration") { if(strstr($ligne, "append initrd=rootfs.gz rw root=/dev/null lang=fr_FR kmap=fr vga=normal sound=no src_part=")) { //echo $ligne."
"; unset($tab); $tab=explode(" ",$ligne); for($i=0;$i"; $infos.="Nom de l'image$nom_image"; } elseif(preg_match("/^auto_reboot=/", $tab[$i])) { $auto_reboot=preg_replace("/^auto_reboot=/", "", $tab[$i]); $infos.="Auto-reboot$auto_reboot"; } elseif(preg_match("/^delais_reboot=/", $tab[$i])) { $delais_reboot=preg_replace("/^delais_reboot=/", "", $tab[$i]); $infos.="Délai avant reboot$delais_reboot"; } } } } elseif($type_action=="Emetteur UdpCast") { //append initrd=udprd root=01:00 persoparams=oui lang=FR kbmap=FR dhcp=yes compr=$compr port=$port umode=snd disk=$disk auto_reboot=$auto_reboot enableDiskmodule=$enableDiskmodule diskmodule=$diskmodule netmodule=$netmodule udpcparam=$udpcparam if(strstr($ligne, "append initrd=udprd root=01:00 persoparams=oui lang=FR kbmap=FR dhcp=yes compr=")) { unset($tab); $tab=explode(" ",$ligne); for($i=0;$i$type_action"; echo ""; echo $infos; echo "
"; affiche_pxe_cfg($chaine_fichier); } else { $tmp_chaine="

$type_action

"; $tmp_chaine.=""; $tmp_chaine.=$infos; $tmp_chaine.="
"; //$tmp_chaine.="Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla Blablabla "; return $tmp_chaine; } } else { echo "

Il n'a pas été possible d'ouvrir le fichier /tftpboot/pxelinux.cfg/01-$corrige_mac

\n"; } } // Fin de visu_tache() //==================================================== function crob_getParam($name) { $sql="SELECT value FROM params WHERE name='".addslashes($name)."';"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $lig=mysql_fetch_object($res); return $lig->value; } else { return ""; } } //==================================================== function crob_setParam($name,$value,$descr) { $sql="DELETE FROM params WHERE name='".addslashes($name)."';"; $del=mysql_query($sql); $sql="INSERT INTO params SET name='$name', descr='$descr', cat='7', value='".addslashes($value)."';"; $insert=mysql_query($sql); if($insert) {return true;} else {return false;} } //==================================================== function check_sysresccd_files() { $tab_fichiers_sysresccd=array("/var/www/sysresccd/sysrcd.dat","/var/www/sysresccd/sysrcd.md5","/var/www/sysresccd/autorun2","/var/www/sysresccd/scripts.tar.gz", "/tftpboot/rescue32", "/tftpboot/initram.igz"); $temoin_sysresccd="n"; $cpt_sysresccd=0; foreach($tab_fichiers_sysresccd as $key => $value) { if(file_exists("$value")) { //echo "

Le fichier /var/www/sysresccd/$value est present.

"; $cpt_sysresccd++; } } if($cpt_sysresccd==count($tab_fichiers_sysresccd)) { //echo "

Tout est en place

"; $temoin_sysresccd="y"; } return $temoin_sysresccd; } //==================================================== function liste_sauvegardes($name,$id="",$mac="",$order_by='date DESC',$limit="") { $tab=array(); $champs=array('id', 'name', 'mac', 'partition', 'image', 'date', 'descriptif', 'df', 'partitionnement', 'identifiant'); // Une machine peut changer de nom // Une recherche par MAC ou ID donnera plus de réponses... mais peut-être avec des sauvegardes dans lesquelles la machine avait un autre nom if($mac!="") { $sql="select * from se3_tftp_sauvegardes WHERE mac='$mac' ORDER BY $order_by"; } elseif($id!="") { $sql="select * from se3_tftp_sauvegardes WHERE id='$id' ORDER BY $order_by"; } else { $sql="select * from se3_tftp_sauvegardes WHERE name='$name' ORDER BY $order_by"; } if($limit!="") {$sql.=" LIMIT $limit;";} $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $cpt=0; while($lig=mysql_fetch_object($res)) { $tab[$cpt]=array(); for($loop=0;$loop$champ_courant; } $cpt++; } } return $tab; } function tableau_liste_sauvegardes($name,$id="",$mac="",$order_by='date DESC',$limit="") { $html=""; $tab=liste_sauvegardes($name,$id,$mac,$order_by,$limit); if(count($tab)==0) { $html="Aucune sauvegarde n'est recensée pour $name"; } else { if($limit==1) {$html.="La derniàre sauvegarde :";} elseif($limit>1) {$html.="Les $limit derniàres sauvegardes :";} $html.="\n"; $html.="\n"; $html.="\n"; $html.="\n"; $html.="\n"; $html.="\n"; $html.="\n"; $html.="\n"; $html.="\n"; for($loop=0;$loop\n"; $html.="\n"; $html.="\n"; $html.="\n"; $html.="\n"; $html.="\n"; $html.="\n"; } $html.="
IdNomPartitionSauvegardeDateDescriptif
".$tab[$loop]['name']."".$tab[$loop]['partition']."".$tab[$loop]['image']."".mysql_date_to_fr_date($tab[$loop]['date'])."
".$tab[$loop]['descriptif']."
\n"; } return $html; } //==================================================== function liste_rapports($name,$id="",$mac="",$order_by='date DESC',$limit="") { $tab=array(); $champs=array('id', 'name', 'mac', 'date', 'tache', 'statut', 'descriptif', 'identifiant'); // Une machine peut changer de nom // Une recherche par MAC ou ID donnera plus de réponses... mais peut-être avec des sauvegardes dans lesquelles la machine avait un autre nom if($mac!="") { $sql="select * from se3_tftp_rapports WHERE mac='$mac' ORDER BY $order_by"; } elseif($id!="") { $sql="select * from se3_tftp_rapports WHERE id='$id' ORDER BY $order_by"; } else { $sql="select * from se3_tftp_rapports WHERE name='$name' ORDER BY $order_by"; } if($limit!="") {$sql.=" LIMIT $limit;";} $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $cpt=0; while($lig=mysql_fetch_object($res)) { $tab[$cpt]=array(); for($loop=0;$loop$champ_courant; } $cpt++; } } return $tab; } function tableau_liste_rapports($name,$id="",$mac="",$order_by='date DESC', $limit="") { $html=""; $tab=liste_rapports($name,$id,$mac,$order_by,$limit); if(count($tab)==0) { $html="Aucune sauvegarde n'est recensée pour $name"; } else { if($limit==1) {$html.="Le dernier rapport :";} elseif($limit>1) {$html.="Les $limit derniers rapports :";} $html.="\n"; $html.="\n"; $html.="\n"; $html.="\n"; $html.="\n"; $html.="\n"; $html.="\n"; $html.="\n"; $html.="\n"; for($loop=0;$loop\n"; $html.="\n"; $html.="\n"; $html.="\n"; $html.="\n"; $html.="\n"; $html.="\n"; } $html.="
IdNomPartitionSauvegardeDateDescriptif
".$tab[$loop]['name']."".$tab[$loop]['partition']."".$tab[$loop]['image']."".mysql_date_to_fr_date($tab[$loop]['date'])."
".$tab[$loop]['descriptif']."
\n"; } return $html; } function list_delegated_parcs($login) { $tab=array(); $sql="select * from delegation WHERE login='$login' AND niveau='manage' ORDER BY parc;"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $cpt=0; while($lig=mysql_fetch_object($res)) { $tab[]=$lig->parc; } } return $tab; } /* function is_machine_in_parc($machine,$parc) { global $ldap_server, $ldap_port, $dn; global $error; $retour="n"; $filtre="(&(cn=$parc)(member=cn=$machine,*))"; //$filtre="(&(cn=$parc)(member=*$machine*))"; $branche="parcs"; $attribut=array('cn'); $ds=@ldap_connect($ldap_server,$ldap_port); if($ds){ $r=@ldap_bind($ds);// Bind anonyme if($r) { $result=ldap_search($ds,$dn[$branche],"$filtre",$attribut); echo "

ldap_search($ds,".$dn[$branche].",\"$filtre\",$attribut);

"; if ($result){ //echo "\$result=$result
"; $info=@ldap_get_entries($ds,$result); if(($info)&&($info["count"]!=0)){ $retour="y"; } } } } return $retour; } */ function is_machine_in_parc($machine,$parc) { $retour="n"; $mp=gof_members($parc,"parcs",1); $nombre_machine=count($mp); for ($loop=0; $loop < count($mp); $loop++) { if(strtolower($mp[$loop])==strtolower($machine)) { $retour="y"; break; } } return $retour; } ?>