\n"; // CSS pour mes tableaux: echo "\n"; if ((is_admin("system_is_admin",$login)=="Y")||(ldap_get_right("parc_can_clone",$login)=="Y")) { // Choix des parcs: $parc=isset($_POST['parc']) ? $_POST['parc'] : (isset($_GET['parc']) ? $_GET['parc'] : NULL); // Choix des machines: $id_machine=isset($_POST['id_machine']) ? $_POST['id_machine'] : (isset($_GET['id_machine']) ? $_GET['id_machine'] : NULL); $parametrage_action=isset($_POST['parametrage_action']) ? $_POST['parametrage_action'] : (isset($_GET['parametrage_action']) ? $_GET['parametrage_action'] : NULL); $pref_distrib_svgrest=crob_getParam('pref_distrib_svgrest'); if(($pref_distrib_svgrest=='slitaz')||($pref_distrib_svgrest=='sysresccd')) {$valeur_par_defaut=$pref_distrib_svgrest;} else {$valeur_par_defaut="slitaz";} $distrib=isset($_POST['distrib']) ? $_POST['distrib'] : $valeur_par_defaut; $sysresccd_kernel=isset($_POST['sysresccd_kernel']) ? $_POST['sysresccd_kernel'] : "rescue32"; /* // Création de la table dès que possible: $sql="CREATE TABLE IF NOT EXISTS se3_tftp_action ( id INT(11), mac VARCHAR(255), name VARCHAR(255), date INT(11), type VARCHAR(255), num_op INT(11) );"; $creation_table=mysql_query($sql); */ creation_tftp_tables(); // Paramètres SliTaz: $nom_image=isset($_POST['nom_image']) ? $_POST['nom_image'] : (isset($_GET['nom_image']) ? $_GET['nom_image'] : NULL); $src_part=isset($_POST['src_part']) ? $_POST['src_part'] : (isset($_GET['src_part']) ? $_GET['src_part'] : NULL); $dest_part=isset($_POST['dest_part']) ? $_POST['dest_part'] : (isset($_GET['dest_part']) ? $_GET['dest_part'] : NULL); $auto_reboot=isset($_POST['auto_reboot']) ? $_POST['auto_reboot'] : (isset($_GET['auto_reboot']) ? $_GET['auto_reboot'] : NULL); $delais_reboot=isset($_POST['delais_reboot']) ? $_POST['delais_reboot'] : (isset($_GET['delais_reboot']) ? $_GET['delais_reboot'] : NULL); // Paramètres concernant l'action immédiate sur les machines choisies: $wake=isset($_POST['wake']) ? $_POST['wake'] : (isset($_GET['wake']) ? $_GET['wake'] : "n"); $shutdown_reboot=isset($_POST['shutdown_reboot']) ? $_POST['shutdown_reboot'] : (isset($_GET['shutdown_reboot']) ? $_GET['shutdown_reboot'] : NULL); $type_dest_part=isset($_POST['type_dest_part']) ? $_POST['type_dest_part'] : "partition"; $dest_srv=isset($_POST['dest_srv']) ? $_POST['dest_srv'] : ""; $dest_partage=isset($_POST['dest_partage']) ? $_POST['dest_partage'] : ""; $dest_sous_dossier=isset($_POST['dest_sous_dossier']) ? $_POST['dest_sous_dossier'] : ""; $dest_compte=isset($_POST['dest_compte']) ? $_POST['dest_compte'] : ""; $dest_mdp=isset($_POST['dest_mdp']) ? $_POST['dest_mdp'] : ""; $type_svg=isset($_POST['type_svg']) ? $_POST['type_svg'] : "partimage"; echo "

".gettext("Action sauvegarde TFTP")."

\n"; $restriction_parcs="n"; if(is_admin("system_is_admin",$login)!="Y") { $restriction_parcs="y"; $tab_delegated_parcs=list_delegated_parcs($login); if(count($tab_delegated_parcs)==0) { echo "

Aucun parc ne vous a été délégué.

\n"; include ("pdp.inc.php"); die(); } } //echo "is_machine_in_parc('xpbof', 'parc_xp')=".is_machine_in_parc('xpbof', 'parc_xp')."
"; $temoin_fichiers_requis="y"; $chemin_tftpboot="/tftpboot"; $tab_udpcast_file=array("bzImage", "rootfs.gz"); for($loop=0;$loop".$chemin_tftpboot."/".$tab_udpcast_file[$loop]." est absent.
\n"; echo "Effectuez le telechargement SliTaz en Configurer le module TFTP
\n"; $temoin_fichiers_requis="n"; } } if($temoin_fichiers_requis=="n") { echo "

ABANDON : Un ou des fichiers requis sont manquants.

\n"; include ("pdp.inc.php"); die(); } if(!isset($parc)) { echo "

Choisissez un ou des parcs:

\n"; $list_parcs=search_machines("objectclass=groupOfNames","parcs"); if (count($list_parcs)==0) { echo "

"; echo gettext("Il n'existe aucun parc. Vous devez d'abord créer un parc"); include ("pdp.inc.php"); exit; } sort($list_parcs); echo "
\n"; // Affichage des parcs sur 3/4 colonnes $nb_parcs_par_colonne=round(count($list_parcs)/3); echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
     \n"; for ($loop=0; $loop < count($list_parcs); $loop++) { if(($loop>0)&&(round($loop/$nb_parcs_par_colonne)==$loop/$nb_parcs_par_colonne)){ echo "\n"; } if(($restriction_parcs=="n")||(in_array($list_parcs[$loop]["cn"], $tab_delegated_parcs))) { echo "\n"; echo "
\n"; } } echo "
\n"; echo "

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

Retour à l'index.

\n"; } else { if(!isset($_POST['parametrage_action'])) { echo "
\n"; echo "\n"; $max_eff_parc=0; for($i=0;$iParc $parc[$i]\n"; echo "\n"; $mp=gof_members($parc[$i],"parcs",1); $nombre_machine=count($mp); sort($mp); //echo "\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; //echo "\n"; echo "\n"; echo "\n"; echo "\n"; for ($loop=0; $loop < count($mp); $loop++) { $mpenc=urlencode($mp[$loop]); // Test si on a une imprimante ou une machine $resultat=search_imprimantes("printer-name=$mpenc","printers"); $suisje_printer="non"; for ($loopp=0; $loopp < count($resultat); $loopp++) { if ($mpenc==$resultat[$loopp]['printer-name']) { $suisje_printer="yes"; continue; } } if($suisje_printer=="non") { // Réinitialisation: $id_machine=""; echo "\n"; echo "\n"; // Etat: allumé ou éteint echo "\n"; // Session: ouverte ou pas... sous quelle identité echo "\n"; // Etat config DHCP: // Par la suite il ne faudra pas prendre les IP dans l'annuaire, // mais dans la config DHCP parce que ce sont ces IP qui seront attribuées lors du boot PXE echo "\n"; //dernier rapport $sql="SELECT * FROM se3_tftp_rapports WHERE name='".$mp[$loop]."' ORDER BY date DESC LIMIT 1;"; $res_rapport_tftp=mysql_query($sql); if(mysql_num_rows($res_rapport_tftp)>0) { $lig=mysql_fetch_object($res_rapport_tftp); echo "\n"; } else { echo "\n"; } // Sélection des machines à sauvegarder: echo "\n"; // Action programmée echo "\n"; echo "\n"; } } echo "
NomEtatSessionConfig DHCPDernier RapportSauvegardeSauvegarde
\n"; echo "\"Tout\n"; echo " / \"Tout\n"; echo "
Actions programmées
".$mp[$loop].""; $mp_curr=search_machines2("(&(cn=$mpenc)(objectClass=ipHost))","computers"); if ($mp_curr[0]["ipHostNumber"]) { $iphost=$mp_curr[0]["ipHostNumber"]; echo "
Patientez
\n"; echo "\n"; } echo "
\n"; echo "
Patientez
\n"; echo "\n"; echo "
\n"; //$mp_curr=search_machines("(&(cn=$mpenc)(objectClass=ipHost))","computers"); if ($mp_curr[0]["macAddress"]) { $sql="SELECT * FROM se3_dhcp WHERE mac='".$mp_curr[0]["macAddress"]."';"; //echo "$sql
"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $lig=mysql_fetch_object($res); $id_machine=$lig->id; //echo $lig->ip; echo "\"$lig-ip\" title=\"$lig->ip\" />"; } else { echo "\"Pas"; } } else { echo "\"Pas"; } echo "
"; echo "id\" target='_blank'>".$lig->date."\n"; $st="$lig->statut"; if($st=="SUCCES") { $cl="green"; } else { $cl="red"; } echo ""."$lig->statut".""; echo "".gettext("Aucun rapport")."\n"; /* foreach($mp_curr[0] as $champ => $valeur) { echo "\$mp_curr[0]['$champ']=$valeur
"; } */ if($id_machine!=""){ echo "\n"; } else { echo "\"Il"; } echo "
\n"; if($id_machine!=""){ $sql="SELECT * FROM se3_tftp_action WHERE id='".$id_machine."';"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $lig=mysql_fetch_object($res); echo "$lig->type programmé(e)"; } else { echo "\"Pas"; } } echo "
\n"; if($max_eff_parc<$loop) {$max_eff_parc=$loop;} } echo "\n"; echo "

\n"; echo "\n"; } else { $validation_parametres=isset($_POST['validation_parametres']) ? $_POST['validation_parametres'] : (isset($_GET['validation_parametres']) ? $_GET['validation_parametres'] : NULL); //$validation_parametres2=isset($_POST['validation_parametres2']) ? $_POST['validation_parametres2'] : (isset($_GET['validation_parametres2']) ? $_GET['validation_parametres2'] : NULL); //if((!isset($validation_parametres))&&(!isset($validation_parametres2))) { if(!isset($validation_parametres)) { echo "

Paramétrage de la sauvegarde

\n"; $nombre_machines=count($id_machine); if($nombre_machines==0){ echo "

ERREUR: Il faut choisir au moins une machine.

\n"; echo "

Retour au choix des machines à sauvegarder.

\n"; echo "

Retour au choix du/des parc(s).

\n"; include ("pdp.inc.php"); exit(); } echo "
\n"; echo "\n"; // Liste des parcs: for($i=0;$i\n"; } // Liste des machines sur lesquelles lancer la sauvegarde: $chaine=""; for($i=0;$i0) {$chaine.=", ";} $sql="SELECT * FROM se3_dhcp WHERE id='".$id_machine[$i]."';"; //echo "$sql
"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $lig=mysql_fetch_object($res); $chaine.=$lig->name; echo "\n"; } } if(count($id_machine)>1){$s="s";}else{$s="";} echo "

Machine$s concernée$s: $chaine

\n"; // Date pour le nom de l'image à générer: $aujourdhui = getdate(); $mois_se3 = sprintf("%02d",$aujourdhui['mon']); $jour_se3 = sprintf("%02d",$aujourdhui['mday']); $annee_se3 = $aujourdhui['year']; $heure_se3 = sprintf("%02d",$aujourdhui['hours']); $minute_se3 = sprintf("%02d",$aujourdhui['minutes']); $seconde_se3 = sprintf("%02d",$aujourdhui['seconds']); $date_se3=$annee_se3.$mois_se3.$jour_se3; echo "

Choisissez les paramètres de sauvegarde:
\n"; $temoin_sysresccd=check_sysresccd_files(); if($temoin_sysresccd=="y") { // Il faut aussi le noyau et l'initram.igz dans /tftpboot, echo "
\n"; echo " (plus long à booter et 300Mo de RAM minimum, mais meilleure détection des pilotes)
\n"; echo "

\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo "Utiliser le noyau : "; echo "\n"; echo "
\n"; echo "
\n"; echo "
\n"; echo "
\n"; echo "
\n"; echo "
\n"; echo "
\n"; } else { echo "

SysRescCD est absent (c'est pourtant le choix recommandé).
Vous pouvez provoquer le téléchargement dans le menu Serveur TFTP/Configurer le module.
A défaut, SliTaz sera utilisé.

\n"; echo "\n"; } echo "\n"; echo "\n"; echo "\n"; /* echo "\n"; */ $srcd_scripts_vers=crob_getParam('srcd_scripts_vers'); if(($temoin_sysresccd=="y")&&($srcd_scripts_vers!='')&&($srcd_scripts_vers>=20111005)) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; } else { echo "\n"; } // Proposer de supprimer Toutes les sauvegardes anterieures (all) ou de plus de N mois // Modifier sauve_part.sh pour SysRescCD // Modifier pxe_gen_cfg.sh pour prendre en compte del_old_svg echo "\n"; if(($temoin_sysresccd=="y")&&(crob_getParam('srcd_scripts_vers')>='20110910')) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; } echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
Nom de la sauvegarde: \n"; echo "\n"; echo "
Partition à sauvegarder: \n"; echo "\n"; echo "
Partition de stockage: \n"; echo "ou à défaut W$ après la partition système) est bien la partition de stockage.')")."\">\n"; echo "
\n"; echo "ou à défaut W$ après la partition système) est bien la partition de stockage.')")."\">\n"; echo "
Ou

(tous les champs doivent être renseignés
si vous optez pour ce choix
)
\n"; $svg_default_srv=crob_getParam('svg_default_srv'); if($svg_default_srv=='') {$svg_default_srv=crob_getParam('se3ip');} $svg_default_partage=crob_getParam('svg_default_partage'); $svg_default_dossier=crob_getParam('svg_default_dossier'); $svg_default_compte=crob_getParam('svg_default_compte'); echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
Serveur :
Partage :
Sous-dossier :
Compte :
Mot de passe :
Attention : Le mot de passe circule en clair.
Evitez d'utiliser un compte comme admin ou adminse3.
\n"; echo "
Type de sauvegarde : \n"; echo "
\n"; echo "
\n"; echo "
\n"; echo "
Partition de stockage: \n"; echo "ou à défaut W$ après la partition système) est bien la partition de stockage.')")."\">\n"; echo "
Supprimer les sauvegardes antérieures: \n"; //echo "
\n"; echo " "; echo "\n"; echo "
Url authorized_keys : \n"; echo "\n"; echo "\n"; echo "\n"; echo "
Rebooter en fin de sauvegarde: \n"; echo "\n"; echo "
Eteindre en fin de sauvegarde: \n"; echo "\n"; echo "
Ne pas rebooter ni éteindre la machine
en fin de sauvegarde:
\n"; echo "\n"; echo "
\n"; echo "Délai avant reboot/arrêt:\n"; echo "\n"; echo "\n"; echo "
Pour la ou les machines sélectionnées: \n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo "
\n"; echo "\n"; echo "\n"; echo ""; echo "\n"; echo "\n"; //====================================================== $temoin_svg_existantes=0; $chaine_tab="

Liste des sauvegardes existantes:

\n"; $chaine_tab.="\n"; $chaine_tab.="\n"; $chaine_tab.="\n"; $chaine_tab.="\n"; $chaine_tab.="\n"; $chaine_tab.="\n"; $chaine_tab.="\n"; $chaine_tab.="\n"; $chaine_tab.="\n"; for($i=0;$i"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { while($lig=mysql_fetch_object($res)) { $chaine_tab.="\n"; $chaine_tab.="\n"; $chaine_tab.="\n"; $chaine_tab.="\n"; $chaine_tab.="\n"; $chaine_tab.="\n"; $chaine_tab.="\n"; $chaine_tab.="\n"; $temoin_svg_existantes++; } } } $chaine_tab.="
IdNomPartitionSauvegardeDateDescriptif
$lig->id$lig->name$lig->partition$lig->image".mysql_date_to_fr_date($lig->date)."
$lig->descriptif
\n"; $chaine_tab.="


\n"; if($temoin_svg_existantes>0) { echo $chaine_tab; } //====================================================== echo "

NOTES:

\n"; echo "
    \n"; echo "
  • Ce choix nécessite une partition de sauvegarde sur la machine.
  • \n"; echo "
  • Attention: Le délai avant reboot ajouté au temps de l'opération lancée doit dépasser la périodicité du script controle_actions_tftp.sh en crontab.
    Ce délai doit aussi permettre de récupérer en http://IP_CLIENT/~hacker/Public/*.txt des informations sur le succès ou l'échec de l'opération.
    Une tâche cron se charge d'effectuer le 'wget' sur les infos, puis le remplissage d'une table MySQL.
    La tâche cron est lancée toutes les 60s.
  • \n"; echo "
  • Si le nom de sauvegarde fourni correspond à un nom de sauvegarde existante, la sauvegarde précédente est supprimée.
  • \n"; echo "
  • Pour que la sauvegarde puisse être entièrement provoquée depuis le serveur, il faut que les postes clients soient configurés pour booter en PXE (ou au moins s'éveiller (wol) en bootant sur le réseau).
    Dans le cas contraire, vous devrez passer sur les postes et presser F12 pour choisir de booter en PXE.
  • \n"; echo "
\n"; } else { echo "

Validation des paramètres de la sauvegarde

\n"; //debug_var(); $opt_url_authorized_keys=""; if((isset($_POST['prendre_en_compte_url_authorized_keys']))&&(isset($_POST['url_authorized_keys']))&&($_POST['url_authorized_keys']!='')&&(preg_replace('|[A-Za-z0-9/:_\.\-]|','',$_POST['url_authorized_keys'])=='')) { $opt_url_authorized_keys="url_authorized_keys=".$_POST['url_authorized_keys']; crob_setParam('url_authorized_keys',$_POST['url_authorized_keys'],'Url fichier authorized_keys pour acces ssh aux clients TFTP'); } echo "

Rappel des paramètres:

\n"; $sauvegarde_pref=crob_setParam('pref_distrib_svgrest', $distrib, 'Distrib preferee pour les sauvegardes et restaurations'); $temoin_sysresccd=check_sysresccd_files(); if($temoin_sysresccd=="y") { echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; } else { echo "\n"; echo "
Distribution linux à utiliser: \n"; echo $distrib; if($distrib=='sysresccd') { echo " (noyau $sysresccd_kernel)"; } echo "\n"; echo "
\n"; } echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; if($type_dest_part=='partition') { echo "\n"; echo "\n"; echo "\n"; echo "\n"; } elseif($type_dest_part=='smb') { if($dest_srv!='') {crob_setParam('svg_default_srv',$_POST['dest_srv'],'Serveur samba par défaut de destination des sauvegardes (TFTP)');} if($dest_partage!='') {crob_setParam('svg_default_partage',$_POST['dest_partage'],'Partage samba par défaut de destination des sauvegardes (TFTP)');} if($dest_sous_dossier!='') {crob_setParam('svg_default_dossier',$_POST['dest_sous_dossier'],'Sous-dossier par défaut de destination des sauvegardes (TFTP)');} if($dest_compte!='') {crob_setParam('svg_default_compte',$_POST['dest_compte'],'Compte par défaut pour le montage de la destination des sauvegardes (TFTP)');} echo "\n"; echo "\n"; echo "\n"; echo "\n"; } else { echo "
Nom de l'image: \n"; if($nom_image=="") {echo "Nom généré automatiquement lors de la sauvegarde.";} else {echo $nom_image;} echo "
Partition à sauvegarder: \n"; if($src_part=="auto") {echo "Détectée automatiquement lors de la sauvegarde.";} else {echo $src_part;} echo "
Partition de stockage de la sauvegarde: \n"; if($dest_part=="auto") {echo "Détectée automatiquement lors de la sauvegarde.";} else {echo $dest_part;} echo "
Sauvegarde dans un partage Window$/Samba: \n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
Serveur :$dest_srv
Partage :$dest_partage
Sous-dossier :$dest_sous_dossier
Compte :$dest_compte
Mot de passe :XXXXXXXX
\n"; echo "
\n"; echo "

ANOMALIE : Le type de la destination de sauvegarde est inconnu.

\n"; include ("pdp.inc.php"); die(); } echo "\n"; echo "Type de sauvegarde: \n"; echo ""; echo $type_svg; if($type_svg!='') {crob_setParam('svg_default_type_svg',$_POST['type_svg'],'Type par defaut des sauvegardes.');} echo "\n"; echo "\n"; if((isset($_POST['suppr_old_svg']))&&($_POST['suppr_old_svg']=='y')) { $del_old_svg=$_POST['del_old_svg']; echo "\n"; echo "Suppression des sauvegardes antérieures: \n"; echo "\n"; if($del_old_svg=="all") {echo "Toutes les sauvegardes antérieures.";} else {echo "Les sauvegardes de plus de $del_old_svg mois?";} echo "\n"; echo "\n"; } echo "\n"; echo "Rebooter en fin de sauvegarde: \n"; echo "\n"; echo $auto_reboot; echo "\n"; echo "\n"; //if($auto_reboot=='y') { if(($auto_reboot=='y')||($auto_reboot=='halt')) { echo "\n"; echo "Délai avant reboot: \n"; echo "\n"; echo "$delais_reboot s"; echo "\n"; echo "\n"; } echo "\n"; echo "

Génération du fichier dans /tftpboot/pxelinux.cfg/ pour la sauvegarde.
\n"; // BOUCLE SUR LA LISTE DES $id_machine[$i] // Numéro de l'opération de sauvegarde: $num_op=get_free_se3_action_tftp_num_op(); for($i=0;$i"; $res=mysql_query($sql); if(mysql_num_rows($res)==0) { echo "La machine d'identifiant $id_machine[$i] n'existe pas dans 'se3_dhcp'.
\n"; $traiter_machine_courante='n'; } else { $temoin_erreur="n"; $lig=mysql_fetch_object($res); $mac_machine=$lig->mac; $nom_machine=$lig->name; $ip_machine=$lig->ip; if($restriction_parcs=="y") { $temoin_erreur='y'; for($loop=0; $loopLa machine $nom_machine ne vous est pas déléguée

\n"; } else { echo "Génération pour $nom_machine: "; $corrige_mac=strtolower(strtr($mac_machine,":","-")); $chemin="/usr/share/se3/scripts"; $ajout=""; $ajout2=""; $ajout3=""; if(isset($del_old_svg)) { $ajout=" '$del_old_svg'"; $ajout2="|del_old_svg=$del_old_svg"; $ajout3=" 'del_old_svg=$del_old_svg'"; } if($distrib=='slitaz') { $ajout_kernel=""; } else { $ajout_kernel="|kernel=$sysresccd_kernel"; } if($distrib=='slitaz') { //$resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'sauve' '$corrige_mac' '$ip_machine' '$nom_machine' '$nom_image' '$src_part' '$dest_part' '$auto_reboot' '$delais_reboot'$ajout", $retour); $resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'sauve' 'mac=$corrige_mac ip=$ip_machine pc=$nom_machine nom_image=$nom_image src_part=$src_part dest_part=$dest_part auto_reboot=$auto_reboot delais_reboot=$delais_reboot $ajout3'", $retour); echo "/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'sauve' 'mac=$corrige_mac ip=$ip_machine pc=$nom_machine nom_image=$nom_image src_part=$src_part dest_part=$dest_part auto_reboot=$auto_reboot delais_reboot=$delais_reboot $ajout3'
"; $info_dest_part=$dest_part; } else { //echo "\$resultat=exec(\"/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'sysresccd_sauve' '$corrige_mac' '$ip_machine' '$nom_machine' '$nom_image' '$src_part' '$dest_part' '$auto_reboot' '$delais_reboot'\", $retour);
"; //$resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'sysresccd_sauve' '$corrige_mac' '$ip_machine' '$nom_machine' '$nom_image' '$src_part' '$dest_part' '$auto_reboot' '$delais_reboot'$ajout", $retour); if($type_dest_part=='smb') { $resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'sysresccd_sauve' 'mac=$corrige_mac ip=$ip_machine pc=$nom_machine nom_image=$nom_image src_part=$src_part dest_part=smb:$dest_compte:$dest_mdp@$dest_srv:$dest_partage:$dest_sous_dossier type_svg=$type_svg auto_reboot=$auto_reboot delais_reboot=$delais_reboot kernel=$sysresccd_kernel $ajout3 $opt_url_authorized_keys'", $retour); $info_dest_part="smb:$dest_compte:XXXXXXXX@$dest_srv:$dest_partage:$dest_sous_dossier"; } else { $resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'sysresccd_sauve' 'mac=$corrige_mac ip=$ip_machine pc=$nom_machine nom_image=$nom_image src_part=$src_part dest_part=$dest_part type_svg=$type_svg auto_reboot=$auto_reboot delais_reboot=$delais_reboot kernel=$sysresccd_kernel $ajout3 $opt_url_authorized_keys'", $retour); $info_dest_part=$dest_part; } } if(count($retour)>0){ //echo "

"; //echo "Il semble que la génération du fichier ait échoué...
\n"; echo "ECHEC de la génération du fichier
\n"; for($j=0;$j\n"; } $temoin_erreur="y"; //echo "

\n"; } else { $sql="DELETE FROM se3_tftp_action WHERE id='$id_machine[$i]';"; $suppr=mysql_query($sql); $timestamp=time(); $sql="INSERT INTO se3_tftp_action SET id='$id_machine[$i]', mac='$mac_machine', name='$nom_machine', date='$timestamp', type='sauvegarde', num_op='$num_op', infos='nom_image=$nom_image|src_part=$src_part|dest_part=$info_dest_part|auto_reboot=$auto_reboot|delais_reboot=${delais_reboot}${ajout_kernel}${ajout2}';"; $insert=mysql_query($sql); if(!$insert) { echo "ECHEC de l'enregistrement dans 'se3_tftp_action'
\n"; $temoin_erreur="y"; } // Génération du lanceur de récupération: //$dossier="/var/se3/tmp/tftp/$id_machine[$i]"; $dossier="/etc/se3/www-tools/tftp/$id_machine[$i]"; if(!file_exists($dossier)) { mkdir($dossier,0700);} $lanceur_recup="$dossier/lanceur_recup_rapport_action_tftp.sh"; $fich=fopen($lanceur_recup,"w+"); $timestamp_limit=time()+4*3600; //fwrite($fich,"/usr/share/se3/scripts/recup_rapport.php '$id_machine[$i]' '$ip_machine' 'sauvegarde' '$timestamp_limit'"); if($distrib=='slitaz') { $mode_sauvegarde="sauvegarde"; } else { $mode_sauvegarde="sauvegarde_sysresccd"; } fwrite($fich,"sudo /usr/share/se3/scripts/recup_rapport.php '$id_machine[$i]' '$ip_machine' '$mode_sauvegarde' '$timestamp_limit'"); fclose($fich); chmod($lanceur_recup,0750); // Ménage dans les tâches précédentes @exec("sudo /usr/share/se3/scripts/se3_tftp_menage_atq.sh $id_machine[$i]",$retour); // Planification de la tâche //@exec("at -f $lanceur_recup now + 1 minute 2>/dev/null",$retour); @exec("at -f $lanceur_recup now + 1 minute 2>$dossier/at.txt",$retour); if($retour) { echo "ECHEC de la planification de la tâche.
\n"; for($j=0;$j\n";} $temoin_erreur="y"; } if($temoin_erreur=="n") { //echo "OK
\n"; echo "OK\n"; // Application de l'action choisie: echo " "; echo "\n"; echo "
\n"; } } } } } // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- // POUVOIR TAGUER DANS LA TABLE se3_dhcp LES MACHINES QUI PEUVENT BOOTER EN PXE // Ajouter un champ? // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- // On n'affiche le fichier que pour le dernier (à titre d'info): if(isset($corrige_mac)) { //$fich=fopen("/tftpboot/pxelinux.cfg/01-$lig1->mac","r"); $fich=fopen("/tftpboot/pxelinux.cfg/01-$corrige_mac","r"); if($fich) { echo "

Pour information, voici le contenu du fichier généré:
\n"; echo "

";
						while(!feof($fich)) {
							$ligne=fgets($fich,4096);
							echo htmlentities($ligne);
						}
						echo "
\n"; fclose($fich); } else { echo "

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

\n"; } } } } echo "

Retour au choix du/des parc(s).

\n"; } } else { print (gettext("Vous n'avez pas les droits nécessaires pour ouvrir cette page...")); } // Footer include ("pdp.inc.php"); ?>