diff options
Diffstat (limited to 'admin/WebConsole/comandos')
4 files changed, 107 insertions, 42 deletions
diff --git a/admin/WebConsole/comandos/RestaurarImagen.php b/admin/WebConsole/comandos/RestaurarImagen.php index 21fdda46..2a9a73c0 100644 --- a/admin/WebConsole/comandos/RestaurarImagen.php +++ b/admin/WebConsole/comandos/RestaurarImagen.php @@ -84,7 +84,7 @@ if (isset($_POST["fk_nombreSO"])) $fk_nombreSO=$_POST["fk_nombreSO"]; $cadenaid=""; $cadenaip=""; $cadenamac=""; - RecopilaIpesMacs($cmd,$ambito,$idambito); + RecopilaIpesMacs($cmd,$ambito,$idambito); ?> <FORM action="RestaurarImagen.php" name="fdatos" method="POST"> <INPUT type="hidden" name="idambito" value="<?php echo $idambito?>"> diff --git a/admin/WebConsole/comandos/gestores/gestor_Comandos.php b/admin/WebConsole/comandos/gestores/gestor_Comandos.php index c58c1981..102b51b3 100644 --- a/admin/WebConsole/comandos/gestores/gestor_Comandos.php +++ b/admin/WebConsole/comandos/gestores/gestor_Comandos.php @@ -36,18 +36,6 @@ define('OG_CMD_ID_CREATE_INCREMENTAL_IMAGE', 14); define('OG_CMD_ID_RESTORE_INCREMENTAL_IMAGE', 15); define('OG_CMD_ID_SENDMESSAGE', 16); -function clean_shell_params($cmd_id, $params) { - switch ($cmd_id) { - case OG_CMD_ID_DELETE_CACHED_IMAGE: - $params = substr($params, 0, -1); - case OG_CMD_ID_SCRIPT: - $params = rawurldecode($params); - break; - } - - return $params; -} - function run_command($idcomando, $cadenaip, $cadenamac, $atributos) { global $cmd; switch ($idcomando) { @@ -91,16 +79,15 @@ function run_command($idcomando, $cadenaip, $cadenamac, $atributos) { software($cadenaip, $atributos); break; case OG_CMD_ID_SCRIPT: - shell(3, $cadenaip, $atributos); - break; case OG_CMD_ID_DELETE_CACHED_IMAGE: - shell(4, $cadenaip, $atributos); + shell(3, $cadenaip, $atributos); break; } } // Recoge parametros de seguimiento $sw_ejya=""; +$sw_ejsis=""; ////////////////agp $sw_seguimiento=""; $sw_ejprg=""; $sw_mkprocedimiento=""; @@ -115,6 +102,8 @@ $idtarea=""; $ordtarea=0; if (isset($_POST["sw_ejya"])) $sw_ejya=$_POST["sw_ejya"]; +if (isset($_POST["sw_ejsis"])) $sw_ejsis=$_POST["sw_ejsis"]; ///////////////////////////////////agp +if (isset($_POST["sw_ejsis_mbr"])) $sw_ejsis_mbr=$_POST["sw_ejsis_mbr"]; ///////////////////////agp if (isset($_POST["sw_seguimiento"])) $sw_seguimiento=$_POST["sw_seguimiento"]; if (isset($_POST["sw_ejprg"])) $sw_ejprg=$_POST["sw_ejprg"]; @@ -136,6 +125,10 @@ $cmd=CreaComando($cadenaconexion); if (!$cmd) Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D. //__________________________________________________________________ +if($funcion=="RestaurarImagenCache") {$funcion="RestaurarImagen";} +if($funcion=="CrearImagenCache") {$funcion="CrearImagen";} +if (isset($_POST["cadenaip"])) $adifiltro=$_POST["cadenaip"]; +if($descricomando=="Asistente Deploy de Imagenes") {$filtro=$adifiltro;} $funcion="nfn=".$funcion.chr(13); // Nombre de la función que procesa el comando y el script que lo implementa $aplicacion=""; // Ámbito de aplicación (cadena de ipes separadas por ";" y de identificadores de ordenadores por "," $acciones=""; // Cadena de identificadores de acciones separadas por ";" para seguimiento @@ -162,12 +155,75 @@ $cadenaid=""; $cadenaip=""; $cadenamac=""; $cadenaoga=""; // Clave de acceso a la API REST de OGAgent. - +//echo $descricomando; if(!empty($filtro)){ // Ambito restringido a un subconjuto de ordenadores if(substr($filtro,strlen($cadenaid)-1,1)==";") // Si el último caracter es una coma $filtro=substr($filtro,0,strlen($filtro)-1); // Quita la coma } -RecopilaIpesMacs($cmd,$ambito,$idambito,$filtro); +RecopilaIpesMacs($cmd,$ambito,$idambito,$filtro);//echo "hola".$ambito." - ".$idambito." - ".$filtro; + +################################################################### +///////////////////// agp /////////////////////////////////////// +################################################################### +if($sw_ejya=='on'){ + if( ($sw_ejsis == "0") && ($idcomando == "3" || $idcomando == "18") ){ + + // Buscamos el Numero de Disco + $disco=explode(chr(13),$atributos); + $disco=$disco[0]; + $disco=explode("=",$disco); + $disco=$disco[1]; + + // ========================================= + // Buscamos el Numero de Particion + $particion=explode(chr(13),$atributos); + $particion=$particion[1]; + $particion=explode("=",$particion); + $particion=$particion[1]; + + // ========================================= + // Asignamos el arranque + $insisresdisk=$disco." ".$particion; + + $cadenaipsh=explode(";",$filtro); + for ($x=0;$x<count($cadenaipsh);$x++){ + /*-------------------------------------------------------------------------------------------------------------------- + Creacion del fichero .sh para cambiar la columna de arranque + --------------------------------------------------------------------------------------------------------------------*/ + $ipsh=$cadenaipsh[$x]; + $ficherosh = "/opt/opengnsys/log/clients/setBootMode/InSisRes.".$ipsh; + $ficherolanza=fopen($ficherosh,"w"); + fwrite($ficherolanza,"#!/bin/bash + + ########################################## + ipsh=\"".$ipsh."\" + ########################################## + #/*--------------------------------------------------------------------------------------------------------------------*/ + #/* CAMBIAMOS EL NETBOOT AVANZADO */ + #/*--------------------------------------------------------------------------------------------------------------------*/ + + # Matamos el proceso de deployImage + PROCDEPLOY=`ps -aux | grep deployImage | awk 'NR == 1' | awk '{ print $2 }' ` + kill -9 \$PROCDEPLOY + sleep 2 + + # Borramos el fichero + rm /opt/opengnsys/log/setBootMode/InSisRes.$ipsh + + # Iniciamos el Sistema + sleep 2 + bootOs $insisresdisk + + "); + fclose($ficherolanza); + exec("chmod 777 /opt/opengnsys/log/clients/setBootMode/InSisRes.".$ipsh.""); + } + } +} +################################################################### +///////////////////// agp /////////////////////////////////////// +################################################################### + /*-------------------------------------------------------------------------------------------------------------------- Creación de parametros para sentencias SQL @@ -209,14 +265,13 @@ if($sw_ejya=='on' || $sw_ejprg=="on" ){ $parametros=$funcion.$atributos; $aplicacion=chr(13)."ido=".$cadenaid.chr(13)."mac=".$cadenamac.chr(13)."iph=".$cadenaip.chr(13); if($sw_seguimiento==1 || $sw_ejprg=="on"){ // Switch de ejecución con seguimiento o comando programado - $sesion = 0; + $sesion=time(); $cmd->ParamSetValor("@tipoaccion",$EJECUCION_COMANDO); $cmd->ParamSetValor("@idtipoaccion",$idcomando); $cmd->ParamSetValor("@descriaccion",$descricomando); $cmd->ParamSetValor("@sesion",$sesion); $cmd->ParamSetValor("@idcomando",$idcomando); - $cmd->ParamSetValor("@parametros", - clean_shell_params($idcomando, $parametros)); + $cmd->ParamSetValor("@parametros",$parametros); $cmd->ParamSetValor("@fechahorareg",date("y/m/d H:i:s")); if($sw_ejprg=="on") // Switch de ejecución con programación (se para el comando tarea para lanzarlo posteriormente) $cmd->ParamSetValor("@estado",$ACCION_DETENIDA); @@ -236,14 +291,7 @@ if($sw_ejya=='on' || $sw_ejprg=="on" ){ VALUES (@idordenador,@tipoaccion,@idtipoaccion,@descriaccion,@ip, @sesion,@idcomando,@parametros,@fechahorareg,@estado,@resultado,@ambito,@idambito,@restrambito,@idcentro)"; $resul=$cmd->Ejecutar(); - if ($i == 0) { - $sesion = $cmd->Autonumerico(); - $cmd->ParamSetValor("@sesion",$sesion); - } } - $cmd->texto = "UPDATE acciones SET sesion=@sesion ". - "WHERE idaccion = @sesion"; - $resul=$cmd->Ejecutar(); $acciones=chr(13)."ids=".$sesion.chr(13); // Para seguimiento } if (!$resul){ @@ -255,13 +303,11 @@ if($sw_ejya=='on' || $sw_ejprg=="on" ){ $ValorParametros=extrae_parametros($parametros,chr(13),'='); $script=@urldecode($ValorParametros["scp"]); if($sw_ejya=='on'){ - if ($sw_seguimiento == 1) { - $resul = create_schedule_now(strval($sesion), - $EJECUCION_PROCEDIMIENTO, - ""); - } else { + if (($sw_seguimiento == 1 || $sw_ejprg == "on") && + $idcomando != OG_CMD_ID_WAKEUP) + run_schedule($cadenaip); + else run_command($idcomando, $cadenaip, $cadenamac, $atributos); - } // En agente nuevo devuelvo siempre correcto $resulhidra = 1; @@ -378,10 +424,7 @@ if($sw_mkprocedimiento=='on' || $sw_mktarea=='on'){ $cmd->ParamSetValor("@idprocedimiento",$idprocedimiento); $cmd->ParamSetValor("@idcomando",$idcomando); $cmd->ParamSetValor("@ordprocedimiento",$ordprocedimiento); - if ($idcomando == OG_CMD_ID_SCRIPT) - $parametros=$funcion.substr(rawurldecode($atributos), 0, -2); - else - $parametros=$funcion.$atributos; + $parametros=$funcion.$atributos; $cmd->ParamSetValor("@parametros",$parametros); $cmd->texto="INSERT INTO procedimientos_acciones(idprocedimiento,orden,idcomando,parametros) VALUES (@idprocedimiento,@ordprocedimiento,@idcomando,@parametros)"; diff --git a/admin/WebConsole/comandos/includes/formularioacciones.php b/admin/WebConsole/comandos/includes/formularioacciones.php index fadc915c..79b7eba3 100644 --- a/admin/WebConsole/comandos/includes/formularioacciones.php +++ b/admin/WebConsole/comandos/includes/formularioacciones.php @@ -9,13 +9,14 @@ // Formulario para paso de parametros comunes para la ejecución de comandos // ************************************************************************************************************************************************* ?> -<FORM name="fdatosejecucion" action="<?php echo $gestor?>" method="post"> +<FORM name="fdatosejecucion" id="fdatosejecucion" action="<?php echo $gestor?>" method="post"> <INPUT type="hidden" name="idcomando" value="<?php echo $idcomando?>"> <INPUT type="hidden" name="descricomando" value="<?php echo $descricomando?>"> <INPUT type="hidden" name="ambito" value="<?php echo $ambito?>"> <INPUT type="hidden" name="idambito" value="<?php echo $idambito?>"> <INPUT type="hidden" name="funcion" value="<?php echo $funcion?>"> <INPUT type="hidden" name="atributos" value="<?php echo $atributos?>"> + <INPUT type="hidden" name="sw_ejsis" value="<?php echo $sw_ejsis?>"> <INPUT type="hidden" name="gestor" value="<?php echo $gestor?>"> <INPUT type="hidden" name="filtro" value=""> diff --git a/admin/WebConsole/comandos/includes/opcionesacciones.php b/admin/WebConsole/comandos/includes/opcionesacciones.php index 7842d3a3..7341237b 100644 --- a/admin/WebConsole/comandos/includes/opcionesacciones.php +++ b/admin/WebConsole/comandos/includes/opcionesacciones.php @@ -9,6 +9,7 @@ // Opciones comunes para la ejecución de comandos // ************************************************************************************************************************************************* ?> + <P align=center><span align=center class=subcabeceras><?php echo $TbMsgAux[0] ?></span></P> <?php if ($ambito !=16 ){ ?> <INPUT type="hidden" name="ambito" value="<?php echo $ambito?>"> @@ -22,14 +23,34 @@ <BR> <?php }?> <TABLE align=center class=opciones_ejecucion BORDER=0> +<!-------------------------------------------------AGP--------------------------------------------------------------------------------> + <TR> + <TD colspan=4> + <?php if ($funcion == "RestaurarImagen" || $funcion == "RestaurarImagenCache" ){ ?> + <TABLE id="tabla_conf" class="tabla_listados" align=right border="2" cellpadding="1" cellspacing="1"> + <TR> + <TH colspan=3><?php echo $TbMsgAux[13]; ?> </TH> + <TH align="center"><INPUT name=sw_ejsis type=checkbox checked value=0></TH> + + </TR> + </TABLE> + <?php } ?> + </TD> + </TR> + <!--------------------------------------------------------------------------------------------------------------------------------> + <TR HEIGHT=5><TD colspan=4><HR></TD></TR> + <!--------------------------------------------------------------------------------------------------------------------------------> +<!-------------------------------------------------AGP--------------------------------------------------------------------------------> <TR> <TD><INPUT name=sw_ejya type=checkbox checked></TD> - <TD colspan=3> <?php echo $TbMsgAux[1] ?> </TD> + <TD colspan=2> <?php echo $TbMsgAux[1] ?> </TD> + <TD rowspan="3"> + </TD> </TR> <TR> <TD> </TD> <TD><INPUT name=sw_seguimiento type=radio value=1></TD><TD><?php echo $TbMsgAux[2] ?> </TD> - </TR> + </TR> <TR> <TD> </TD> <TD><INPUT checked name=sw_seguimiento type=radio value=0></TD><TD><?php echo $TbMsgAux[3] ?> </TD> @@ -66,7 +87,7 @@ <TD><?php echo $TbMsgAux[8] ?> </TD> <TD><INPUT maxlength=3 style="FONT-FAMILY:Arial, Helvetica, sans-serif;FONT-SIZE: 11px;WIDTH:30px" name=ordprocedimiento type=text value=""></TD></TR> <!--------------------------------------------------------------------------------------------------------------------------------> - <TR><TD colspan=4 HEIGHT="10px"> <HR></TD></TR> + <TR><TD colspan=4 HEIGHT="10"> <HR></TD></TR> <!--------------------------------------------------------------------------------------------------------------------------------> <TR> <TD><INPUT onclick="clic_mktarea(this)" name=sw_mktarea type=checkbox></TD> |