Subversion Repositories se3

Compare Revisions

Ignore whitespace Rev 6614 → Rev 6615

/branches/2.1/se3-clonage/sources/www/tftp/action_rapport_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);
60,6 → 60,17
 
echo "<h1>".gettext("Action rapport TFTP")."</h1>\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 "<p>Aucun parc ne vous a été délégué.</p>\n";
include ("pdp.inc.php");
die();
}
}
 
if(!isset($parc)){
echo "<p>Cette page doit vous permettre de programmer une récupération d'informations sur les machines choisies pour connaître les partitions, les sauvegardes présentes,...</p>\n";
 
88,8 → 99,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";
100,6 → 115,21
 
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 {
366,6 → 396,17
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 inspect&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 rapport: </td>\n";
echo "<td>\n";
echo "<input type='radio' name='auto_reboot' value='y' checked />\n";
418,9 → 459,11
if(distrib=='slitaz') {
document.getElementById('div_sysresccd_kernel').style.display='none';
document.getElementById('tr_authorized_keys').style.display='none';
}
else {
document.getElementById('div_sysresccd_kernel').style.display='block';
document.getElementById('tr_authorized_keys').style.display='';
}
}
 
441,6 → 484,12
else {
echo "<h2>Validation des paramètres de la récupération de rapports</h2>\n";
 
$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();
526,128 → 575,141
$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";
 
if($distrib=='slitaz') {
$ajout_kernel="";
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;}
}
}
else {
$ajout_kernel="|kernel=$sysresccd_kernel";
}
 
if($distrib=='slitaz') {
//$resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'rapport' '$corrige_mac' '$ip_machine' '$nom_machine' '$auto_reboot' '$delais_reboot'", $retour);
$resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'rapport' 'mac=$corrige_mac ip=$ip_machine pc=$nom_machine auto_reboot=$auto_reboot delais_reboot=$delais_reboot'", $retour);
}
else {
//$resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'sysresccd_rapport' '$corrige_mac' '$ip_machine' '$nom_machine' '$auto_reboot' '$delais_reboot'", $retour);
$resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'sysresccd_rapport' 'mac=$corrige_mac ip=$ip_machine pc=$nom_machine auto_reboot=$auto_reboot delais_reboot=$delais_reboot kernel=$sysresccd_kernel'", $retour);
if($temoin_erreur=="y") {
echo "<p style='color:red'>La machine $nom_machine ne vous est pas déléguée</p>\n";
}
 
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='rapport',
num_op='$num_op',
infos='auto_reboot=$auto_reboot|delais_reboot=${delais_reboot}${ajout_kernel}';";
$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";
echo "Génération pour $nom_machine: ";
$corrige_mac=strtolower(strtr($mac_machine,":","-"));
$chemin="/usr/share/se3/scripts";
if($distrib=='slitaz') {
$ajout_kernel="";
}
 
// 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+");
// On donne 4H pour que la récup soit effectuée:
$timestamp_limit=time()+4*3600;
//fwrite($fich,"/usr/share/se3/scripts/recup_rapport.php '$id_machine[$i]' '$ip_machine' 'rapport' '$timestamp_limit'");
else {
$ajout_kernel="|kernel=$sysresccd_kernel";
}
if($distrib=='slitaz') {
$mode_rapport="rapport";
//$resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'rapport' '$corrige_mac' '$ip_machine' '$nom_machine' '$auto_reboot' '$delais_reboot'", $retour);
$resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'rapport' 'mac=$corrige_mac ip=$ip_machine pc=$nom_machine auto_reboot=$auto_reboot delais_reboot=$delais_reboot'", $retour);
}
else {
$mode_rapport="rapport_sysresccd";
//$resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'sysresccd_rapport' '$corrige_mac' '$ip_machine' '$nom_machine' '$auto_reboot' '$delais_reboot'", $retour);
$resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'sysresccd_rapport' 'mac=$corrige_mac ip=$ip_machine pc=$nom_machine auto_reboot=$auto_reboot delais_reboot=$delais_reboot kernel=$sysresccd_kernel $opt_url_authorized_keys'", $retour);
}
fwrite($fich,"sudo /usr/share/se3/scripts/recup_rapport.php '$id_machine[$i]' '$ip_machine' '$mode_rapport' '$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);
//passthru("at -f $lanceur_recup now + 1 minute",$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";}
//echo "$retour<br />\n";
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";
}
 
/*
// Avec ça on arrive à récupérer l'info:
// -warning: commands will be executed using /bin/sh -
// -job 1572 at 2008-03-01 15:13 -
// Mais une fois le at repoussé, ce n'est plus www-se3, mais root qui en est proprio...
if(file_exists("$dossier/at.txt")) {
$fp=fopen("$dossier/at.txt","r");
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='rapport',
num_op='$num_op',
infos='auto_reboot=$auto_reboot|delais_reboot=${delais_reboot}${ajout_kernel}';";
$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+");
// On donne 4H pour que la récup soit effectuée:
$timestamp_limit=time()+4*3600;
//fwrite($fich,"/usr/share/se3/scripts/recup_rapport.php '$id_machine[$i]' '$ip_machine' 'rapport' '$timestamp_limit'");
if($distrib=='slitaz') {
$mode_rapport="rapport";
}
else {
$mode_rapport="rapport_sysresccd";
}
fwrite($fich,"sudo /usr/share/se3/scripts/recup_rapport.php '$id_machine[$i]' '$ip_machine' '$mode_rapport' '$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);
//passthru("at -f $lanceur_recup now + 1 minute",$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";}
//echo "$retour<br />\n";
$temoin_erreur="y";
}
/*
// Avec ça on arrive à récupérer l'info:
// -warning: commands will be executed using /bin/sh -
// -job 1572 at 2008-03-01 15:13 -
// Mais une fois le at repoussé, ce n'est plus www-se3, mais root qui en est proprio...
if(file_exists("$dossier/at.txt")) {
$fp=fopen("$dossier/at.txt","r");
while(!feof($fp)) {
$ligne=fgets($fp,4096);
echo "<p>-".$ligne."-</p>";
}
fclose($fp);
}
*/
/*
$fp=popen("at -f $lanceur_recup now + 1 minute","r");
while(!feof($fp)) {
$ligne=fgets($fp,4096);
echo "<p>-".$ligne."-</p>";
}
fclose($fp);
*/
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";
}
}
*/
 
/*
$fp=popen("at -f $lanceur_recup now + 1 minute","r");
while(!feof($fp)) {
$ligne=fgets($fp,4096);
echo "<p>-".$ligne."-</p>";
}
fclose($fp);
*/
 
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";
}
}
}
}