summaryrefslogtreecommitdiffstats
path: root/admin/WebConsole
diff options
context:
space:
mode:
authoralbertogp <albertogp@uma.es>2021-03-23 10:27:18 +0100
committeralbertogp <albertogp@uma.es>2021-05-03 17:05:04 +0200
commit9c08ec2548eff04c2269ae81bcfda87bd668238d (patch)
tree5585882f2e238fd4890e598190cd2e16aeeb9a73 /admin/WebConsole
parent009ccfe70a6e179b6886bf1bce8436eb475d080d (diff)
"ID-824 Modificando comando setBootMode por bootOs"
Diffstat (limited to 'admin/WebConsole')
-rw-r--r--admin/WebConsole/comandos/gestores/gestor_Comandos.php110
1 files changed, 73 insertions, 37 deletions
diff --git a/admin/WebConsole/comandos/gestores/gestor_Comandos.php b/admin/WebConsole/comandos/gestores/gestor_Comandos.php
index b92307c3..c1e35514 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,10 +79,8 @@ 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;
}
}
@@ -169,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 ///////////////////////////////////////
+###################################################################
+
###################################################################
///////////////////// agp ///////////////////////////////////////
@@ -279,14 +328,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);
@@ -306,14 +354,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){
@@ -325,13 +366,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;
@@ -448,10 +487,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)";