Subversion Repositories se3

Compare Revisions

Ignore whitespace Rev 6610 → Rev 6611

/branches/2.1/se3-clonage/sources/www/tftp/action_svg_tftp.php
29,7 → 29,7
// CSS pour mes tableaux:
echo "<link type='text/css' rel='stylesheet' href='tftp.css' />\n";
 
if (is_admin("system_is_admin",$login)=="Y")
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);
67,14 → 67,36
$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 "<h1>".gettext("Action sauvegarde TFTP")."</h1>\n";
 
if(!isset($parc)){
$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 "<p>Aucun parc ne vous a été délégué.</p>\n";
include ("pdp.inc.php");
die();
}
}
 
//echo "is_machine_in_parc('xpbof', 'parc_xp')=".is_machine_in_parc('xpbof', 'parc_xp')."<br />";
 
if(!isset($parc)) {
 
echo "<p>Choisissez un ou des parcs:</p>\n";
 
$list_parcs=search_machines("objectclass=groupOfNames","parcs");
if ( count($list_parcs)==0) {
if (count($list_parcs)==0) {
echo "<br><br>";
echo gettext("Il n'existe aucun parc. Vous devez d'abord créer un parc");
include ("pdp.inc.php");
96,8 → 118,12
echo "<td align='left'>\n";
}
 
echo "<label for='parc_$loop'><input type='checkbox' id='parc_$loop' name='parc[]' value=\"".$list_parcs[$loop]["cn"]."\" />".$list_parcs[$loop]["cn"]."</label>\n";
echo "<br />\n";
if(($restriction_parcs=="n")||(in_array($list_parcs[$loop]["cn"], $tab_delegated_parcs))) {
echo "<label for='parc_$loop'><input type='checkbox' id='parc_$loop' name='parc[]' value=\"".$list_parcs[$loop]["cn"]."\"";
if(count($list_parcs)==1) {echo " checked";}
echo " />".$list_parcs[$loop]["cn"]."</label>\n";
echo "<br />\n";
}
}
 
echo "</td>\n";
108,10 → 134,25
 
echo "</form>\n";
 
 
echo "<script type='text/javascript'>
nb_parcs=0;
id_parc='';
for(i=0;i<$loop;i++) {
if(document.getElementById('parc_'+i)) {
nb_parcs++;
id_parc='parc_'+i;
}
}
if(nb_parcs==1) {
document.getElementById(id_parc).checked=true;
}
</script>\n";
 
echo "<p><a href='index.php'>Retour à l'index</a>.</p>\n";
}
else {
if(!isset($_POST['parametrage_action'])){
if(!isset($_POST['parametrage_action'])) {
 
echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">\n";
echo "<input type=\"hidden\" name=\"parametrage_action\" value=\"1\" />\n";
275,6 → 316,9
}
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 "<h2>Paramétrage de la sauvegarde</h2>\n";
 
289,7 → 333,7
exit();
}
 
echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">\n";
echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\" name=\"form1\">\n";
echo "<input type=\"hidden\" name=\"parametrage_action\" value=\"1\" />\n";
// Liste des parcs:
for($i=0;$i<count($parc);$i++){
363,10 → 407,69
echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('Proposer hda1, sda1,... selon les cas, ou laissez \'auto\' si la première partition du disque est bien la partition système à sauvegarder.')")."\"><img name=\"action_image2\" src=\"../elements/images/help-info.gif\"></u>\n";
echo "</td></tr>\n";
 
/*
echo "<tr><td>Partition de stockage: </td><td><input type='text' name='dest_part' value='auto' />\n";
echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('Proposer hda5, sda5,... selon les cas, ou laissez \'auto\' si la première partition Linux (<i>ou à défaut W$ après la partition système</i>) est bien la partition de stockage.')")."\"><img name=\"action_image3\" src=\"../elements/images/help-info.gif\"></u>\n";
echo "</td></tr>\n";
*/
 
$srcd_scripts_vers=crob_getParam('srcd_scripts_vers');
if(($temoin_sysresccd=="y")&&($srcd_scripts_vers!='')&&($srcd_scripts_vers>=20111005)) {
echo "<tr><td><input type='radio' name='type_dest_part' id='type_dest_part_partition' value='partition' checked /><label for='type_dest_part_partition'> Partition de stockage: </label></td><td><input type='text' name='dest_part' value='auto' />\n";
echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('Proposer hda5, sda5,... selon les cas, ou laissez \'auto\' si la première partition Linux (<i>ou à défaut W$ après la partition système</i>) est bien la partition de stockage.')")."\"><img name=\"action_image3\" src=\"../elements/images/help-info.gif\"></u>\n";
echo "</td></tr>\n";
 
echo "<tr id='tr_dest_part_smb'><td style='vertical-align:top'><b>Ou</b><br /><input type='radio' name='type_dest_part' id='type_dest_part_smb' value='smb' /><label for='type_dest_part_smb'> Effectuer une sauvegarde vers un partage Window$/Samba&nbsp;:</label><br />(<i>tous les champs doivent être renseignés<br />si vous optez pour ce choix</i>)</td>\n";
echo "<td>\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 "<table>\n";
echo "<tr>\n";
echo "<td>Serveur&nbsp;:</td>\n";
 
echo "<td><input type='text' name='dest_srv' id='dest_srv' value='".$svg_default_srv."' onchange=\"document.getElementById('type_dest_part_smb').checked=true;\" /></td>\n";
echo "</tr>\n";
 
echo "<tr>\n";
echo "<td>Partage&nbsp;:</td>\n";
echo "<td><input type='text' name='dest_partage' id='dest_partage' value='$svg_default_partage' onchange=\"document.getElementById('type_dest_part_smb').checked=true;\" /></td>\n";
echo "</tr>\n";
 
echo "<tr>\n";
echo "<td>Sous-dossier&nbsp;:</td>\n";
echo "<td><input type='text' name='dest_sous_dossier' id='dest_sous_dossier' value='$svg_default_dossier' onchange=\"document.getElementById('type_dest_part_smb').checked=true;\" /></td>\n";
echo "</tr>\n";
 
echo "<tr>\n";
echo "<td>Compte&nbsp;:</td>\n";
echo "<td><input type='text' name='dest_compte' id='dest_compte' value='$svg_default_compte' onchange=\"document.getElementById('type_dest_part_smb').checked=true;\" /></td>\n";
echo "</tr>\n";
 
echo "<tr>\n";
echo "<td style='vertical-align:top'>Mot de passe&nbsp;:</td>\n";
echo "<td><input type='text' name='dest_mdp' id='dest_mdp' value='' onchange=\"document.getElementById('type_dest_part_smb').checked=true;\" autocomplete=\"off\" /><br /><b>Attention&nbsp;:</b> Le mot de passe circule en clair.<br />Evitez d'utiliser un compte comme admin ou adminse3.</td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</td></tr>\n";
 
echo "<tr><td style='vertical-align:top'>Type de sauvegarde&nbsp;: </td>\n";
echo "<td>\n";
echo "<input type='radio' name='type_svg' id='type_svg_partimage' value='partimage' checked /><label for='type_svg_partimage'> partimage</label><br />\n";
echo "<input type='radio' name='type_svg' id='type_svg_ntfsclone' value='ntfsclone' /><label for='type_svg_ntfsclone'> ntfsclone</label><br />\n";
echo "<input type='radio' name='type_svg' id='type_svg_fsarchiver' value='fsarchiver' /><label for='type_svg_fsarchiver'> fsarchiver</label><br />\n";
echo "</td></tr>\n";
}
else {
echo "<tr><td>Partition de stockage: </td><td><input type='text' name='dest_part' value='auto' />\n";
echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('Proposer hda5, sda5,... selon les cas, ou laissez \'auto\' si la première partition Linux (<i>ou à défaut W$ après la partition système</i>) est bien la partition de stockage.')")."\"><img name=\"action_image3\" src=\"../elements/images/help-info.gif\"></u>\n";
echo "</td></tr>\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
381,6 → 484,16
echo "</select>\n";
echo "</td></tr>\n";
 
if(($temoin_sysresccd=="y")&&(crob_getParam('srcd_scripts_vers')>='20110910')) {
echo "<tr id='tr_authorized_keys'>\n";
echo "<td>Url authorized_keys&nbsp;: </td>\n";
echo "<td><input type='checkbox' name='prendre_en_compte_url_authorized_keys' value='y' /> \n";
echo "<input type='text' name='url_authorized_keys' value='".crob_getParam('url_authorized_keys')."' size='40' />\n";
echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('Un fichier authorized_keys peut &ecirc;tre mis en place pour permettre un acc&egrave;s SSH au poste sauvegard&eacute;.')")."\">\n";
echo "<img name=\"action_image3\" src=\"../elements/images/help-info.gif\"></u>\n";
echo "</td>\n";
echo "</tr>\n";
}
 
echo "<tr><td valign='top'>Rebooter en fin de sauvegarde: </td>\n";
echo "<td>\n";
420,11 → 533,21
 
echo "</table>\n";
 
echo "<p align='center'><input type=\"submit\" name=\"validation_parametres\" value=\"Valider\" /></p>\n";
echo "<input type=\"hidden\" name=\"validation_parametres\" value=\"y\" />\n";
 
echo "<p id='bouton_submit' style='text-align:center; display:none;'><input type=\"button\" name=\"bouton_validation_parametres2\" value=\"Valider\" onclick=\"check_smb_et_valide_formulaire('Un ou des champs ne sont pas remplis. Etes-vous s&ucirc;r de vouloir poursuivre ?');\" /></p>\n";
 
echo "<noscript>";
echo "<p align='center'><input type=\"submit\" name=\"bouton_validation_parametres\" value=\"Valider\" /></p>\n";
echo "</noscript>";
 
echo "</form>\n";
 
 
echo "<script type='text/javascript'>
// Si javascript est actif, on de-cache le bouton_submit:
if(document.getElementById('bouton_submit')) {document.getElementById('bouton_submit').style.display='';}
 
function affiche_sections_distrib() {
if(document.getElementById('distrib_sysresccd').checked==true) {
distrib='sysresccd';
435,13 → 558,52
if(distrib=='slitaz') {
document.getElementById('div_sysresccd_kernel').style.display='none';
document.getElementById('tr_authorized_keys').style.display='none';
if(document.getElementById('tr_dest_part_smb')) {document.getElementById('tr_dest_part_smb').style.display='none';}
}
else {
document.getElementById('div_sysresccd_kernel').style.display='block';
document.getElementById('tr_authorized_keys').style.display='';
if(document.getElementById('tr_dest_part_smb')) {document.getElementById('tr_dest_part_smb').style.display='';}
}
}
 
affiche_sections_distrib();
 
function check_smb_et_valide_formulaire(themessage) {
if(document.getElementById('type_dest_part_smb')) {
if(document.getElementById('type_dest_part_smb').checked==true) {
// On vérifie si les champs sont non vides
dest_srv=''
dest_partage=''
dest_sous_dossier=''
dest_compte=''
dest_mdp=''
if(document.getElementById('dest_srv')) {dest_srv=document.getElementById('dest_srv').value;}
if(document.getElementById('dest_partage')) {dest_partage=document.getElementById('dest_partage').value;}
if(document.getElementById('dest_sous_dossier')) {dest_sous_dossier=document.getElementById('dest_sous_dossier').value;}
if(document.getElementById('dest_compte')) {dest_compte=document.getElementById('dest_compte').value;}
if(document.getElementById('dest_mdp')) {dest_mdp=document.getElementById('dest_mdp').value;}
 
if((dest_srv!='')&&(dest_partage!='')&&(dest_sous_dossier!='')&&(dest_compte!='')&&(dest_mdp!='')) {
document.form1.submit();
}
else {
var is_confirmed = confirm(themessage);
if(is_confirmed){
document.form1.submit();
}
}
}
else {
document.form1.submit();
}
}
else {
document.form1.submit();
}
}
 
</script>\n";
 
//======================================================
497,6 → 659,12
echo "<h2>Validation des paramètres de la sauvegarde</h2>\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 "<p>Rappel des paramètres:</p>\n";
 
$temoin_sysresccd=check_sysresccd_files();
533,11 → 701,63
echo "</td>\n";
echo "</tr>\n";
 
if($type_dest_part=='partition') {
echo "<tr>\n";
echo "<th style='text-align:left;'>Partition de stockage de la sauvegarde: </th>\n";
echo "<td>\n";
if($dest_part=="auto") {echo "Détectée automatiquement lors de la sauvegarde.";} else {echo $dest_part;}
echo "</td>\n";
echo "</tr>\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 "<tr>\n";
echo "<th style='text-align:left; vertical-align:top;'>Sauvegarde dans un partage Window$/Samba: </th>\n";
echo "<td>\n";
echo "<table>\n";
echo "<tr>\n";
echo "<td>Serveur&nbsp;:</td>\n";
echo "<td>$dest_srv</td>\n";
echo "</tr>\n";
 
echo "<tr>\n";
echo "<td>Partage&nbsp;:</td>\n";
echo "<td>$dest_partage</td>\n";
echo "</tr>\n";
 
echo "<tr>\n";
echo "<td>Sous-dossier&nbsp;:</td>\n";
echo "<td>$dest_sous_dossier</td>\n";
echo "</tr>\n";
 
echo "<tr>\n";
echo "<td>Compte&nbsp;:</td>\n";
echo "<td>$dest_compte</td>\n";
echo "</tr>\n";
 
echo "<tr>\n";
echo "<td>Mot de passe&nbsp;:</td>\n";
echo "<td>XXXXXXXX</td>\n";
echo "</tr>\n";
echo "</table>\n";
 
echo "</td>\n";
echo "</tr>\n";
}
else {
echo "</table>\n";
echo "<p style='color:red'>ANOMALIE&nbsp;: Le type de la destination de sauvegarde est inconnu.</p>\n";
include ("pdp.inc.php");
die();
}
 
echo "<tr>\n";
echo "<th style='text-align:left;'>Partition de stockage de la sauvegarde: </th>\n";
echo "<td>\n";
if($dest_part=="auto") {echo "Détectée automatiquement lors de la sauvegarde.";} else {echo $dest_part;}
echo "</td>\n";
echo "<th style='text-align:left;'>Type de sauvegarde: </th>\n";
echo "<td>$type_svg</td>\n";
echo "</tr>\n";
 
if((isset($_POST['suppr_old_svg']))&&($_POST['suppr_old_svg']=='y')) {
582,6 → 802,7
$res=mysql_query($sql);
if(mysql_num_rows($res)==0) {
echo "<span style='color:red;'>La machine d'identifiant $id_machine[$i] n'existe pas dans 'se3_dhcp'.</span><br />\n";
$traiter_machine_courante='n';
}
else {
$temoin_erreur="n";
591,113 → 812,137
$nom_machine=$lig->name;
$ip_machine=$lig->ip;
 
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($restriction_parcs=="y") {
$temoin_erreur='y';
for($loop=0; $loop<count($tab_delegated_parcs);$loop++) {
// La machine est-elle dans un des parcs délégués?
if(is_machine_in_parc($nom_machine,$tab_delegated_parcs[$loop])) {$temoin_erreur='n';break;}
}
}
 
if($distrib=='slitaz') {
$ajout_kernel="";
if($temoin_erreur=="y") {
echo "<p style='color:red'>La machine $nom_machine ne vous est pas déléguée</p>\n";
}
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'<br />";
}
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);<br />";
//$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);
$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 auto_reboot=$auto_reboot delais_reboot=$delais_reboot kernel=$sysresccd_kernel $ajout3'", $retour);
}
 
if(count($retour)>0){
//echo "<p>";
//echo "<span style='color:red;'>Il semble que la génération du fichier ait échoué...</span><br />\n";
echo "<span style='color:red;'>ECHEC de la génération du fichier</span><br />\n";
for($j=0;$j<count($retour);$j++){
echo "$retour[$j]<br />\n";
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'";
}
$temoin_erreur="y";
//echo "</p>\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=$dest_part|auto_reboot=$auto_reboot|delais_reboot=${delais_reboot}${ajout_kernel}${ajout2}';";
$insert=mysql_query($sql);
if(!$insert) {
echo "<span style='color:red;'>ECHEC de l'enregistrement dans 'se3_tftp_action'</span><br />\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";
$ajout_kernel="";
}
else {
$mode_sauvegarde="sauvegarde_sysresccd";
$ajout_kernel="|kernel=$sysresccd_kernel";
}
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);
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'<br />";
 
// 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 "<span style='color:red;'>ECHEC de la planification de la tâche.</span><br />\n";
for($j=0;$j<count($retour);$j++){echo "$retour[$j]<br />\n";}
$temoin_erreur="y";
$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);<br />";
//$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);
 
if($temoin_erreur=="n") {
//echo "<span style='color:green;'>OK</span><br />\n";
echo "<span style='color:green;'>OK</span>\n";
// Application de l'action choisie:
echo " <span id='wake_shutdown_or_reboot_$i'></span>";
$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);
 
echo "<script type='text/javascript'>
// <![CDATA[
new Ajax.Updater($('wake_shutdown_or_reboot_$i'),'ajax_lib.php?ip=$ip_machine&nom=$nom_machine&mode=wake_shutdown_or_reboot&wake=$wake&shutdown_reboot=$shutdown_reboot',{method: 'get'});
//]]>
</script>\n";
 
 
echo "<br />\n";
$info_dest_part=$dest_part;
}
}
if(count($retour)>0){
//echo "<p>";
//echo "<span style='color:red;'>Il semble que la génération du fichier ait échoué...</span><br />\n";
echo "<span style='color:red;'>ECHEC de la génération du fichier</span><br />\n";
for($j=0;$j<count($retour);$j++){
echo "$retour[$j]<br />\n";
}
$temoin_erreur="y";
//echo "</p>\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 "<span style='color:red;'>ECHEC de l'enregistrement dans 'se3_tftp_action'</span><br />\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 "<span style='color:red;'>ECHEC de la planification de la tâche.</span><br />\n";
for($j=0;$j<count($retour);$j++){echo "$retour[$j]<br />\n";}
$temoin_erreur="y";
}
if($temoin_erreur=="n") {
//echo "<span style='color:green;'>OK</span><br />\n";
echo "<span style='color:green;'>OK</span>\n";
// Application de l'action choisie:
echo " <span id='wake_shutdown_or_reboot_$i'></span>";
echo "<script type='text/javascript'>
// <![CDATA[
new Ajax.Updater($('wake_shutdown_or_reboot_$i'),'ajax_lib.php?ip=$ip_machine&nom=$nom_machine&mode=wake_shutdown_or_reboot&wake=$wake&shutdown_reboot=$shutdown_reboot',{method: 'get'});
//]]>
</script>\n";
echo "<br />\n";
}
}
}
}
}