refs #202 removes unnecesary sources directory
parent
f0544f4515
commit
f41639d5cc
|
|
@ -1,9 +0,0 @@
|
||||||
OpenGnsys Services for Clients README
|
|
||||||
=======================================
|
|
||||||
|
|
||||||
|
|
||||||
Este directorio contiene el código fuente de los servicios OpenGnsys específicos para clientes.
|
|
||||||
|
|
||||||
- ogAdmClient servicio para cliente ogLive que atiende peticiones de OpenGnsys Server
|
|
||||||
- ogagent OGAgent: agente modular para sistemas operativos con API REST
|
|
||||||
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
# makefile
|
|
||||||
|
|
||||||
# Nombre del proyecto
|
|
||||||
PROYECTO := ogAdmClient
|
|
||||||
|
|
||||||
# Directorios y librerias
|
|
||||||
DIRS :=
|
|
||||||
LIBS := -static
|
|
||||||
|
|
||||||
# Opciones de compilacion
|
|
||||||
OPCS := -m32 -O0 -g -Wall # Depuracion
|
|
||||||
#OPCS := -m32 -O3 -Wall # Optimizacion
|
|
||||||
|
|
||||||
# Ficheros objetos
|
|
||||||
OBJS := sources/ogAdmClient.o
|
|
||||||
|
|
||||||
all: $(PROYECTO)
|
|
||||||
|
|
||||||
$(PROYECTO): $(OBJS)
|
|
||||||
gcc $(OPCS) $(DIRS) $(LIBS) $(OBJS) -o $(PROYECTO)
|
|
||||||
# strip $(PROYECTO) # Optimizacion
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f $(PROYECTO) $(OBJS)
|
|
||||||
|
|
||||||
sources/%.o: sources/%.c
|
|
||||||
gcc $(OPCS) -I ../../Includes -c -o"$@" "$<"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
ServidorAdm=SERVERIP
|
|
||||||
PUERTO=2008
|
|
||||||
PATHINTERFACE=/opt/opengnsys/interfaceAdm
|
|
||||||
UrlMenu=OPENGNSYSURL/varios/menubrowser.php
|
|
||||||
UrlMsg=http://localhost/cgi-bin/httpd-log.sh
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,183 +0,0 @@
|
||||||
// ********************************************************************************************************
|
|
||||||
// Cliernte: ogAdmClient
|
|
||||||
// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
|
|
||||||
// Fecha Creación: Marzo-2010
|
|
||||||
// Fecha Última modificación: Marzo-2010
|
|
||||||
// Nombre del fichero: ogAdmClient.h
|
|
||||||
// Descripción :Este fichero implementa el cliente general del sistema
|
|
||||||
// ********************************************************************************************************
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <ctype.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <time.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#include <sys/wait.h>
|
|
||||||
#include <netinet/in.h>
|
|
||||||
#include <arpa/inet.h>
|
|
||||||
#include <signal.h>
|
|
||||||
#include "ogAdmLib.h"
|
|
||||||
// ________________________________________________________________________________________________________
|
|
||||||
// Variables globales
|
|
||||||
// ________________________________________________________________________________________________________
|
|
||||||
char *idordenador; // Identificador del ordenador
|
|
||||||
char *nombreordenador; // Nombre del ordenador
|
|
||||||
char *cache; // Tamaño de la caché
|
|
||||||
char *idproautoexec; // Identificador del procedimiento de autoexec
|
|
||||||
char *idcentro; // Identificador de la Unidad Organizativa
|
|
||||||
char *idaula; // Identificador del aula
|
|
||||||
char IPlocal[LONIP]; // Ip local
|
|
||||||
|
|
||||||
char servidoradm[LONPRM]; // Dirección IP del servidor de administración
|
|
||||||
char puerto[LONPRM]; // Puerto de comunicación
|
|
||||||
char pathinterface[LONPRM]; // Path donde está la interface entre la administración y el módulo de clonación
|
|
||||||
|
|
||||||
char interface[LONFUN]; // Nombre del módulo,función o script de la interface con el módulo de administración
|
|
||||||
char parametros[LONSTD]; // Parámetros para la llamada
|
|
||||||
int herror;
|
|
||||||
|
|
||||||
BOOLEAN CMDPTES; // Para bucle de comandos pendientes
|
|
||||||
|
|
||||||
|
|
||||||
char urlmenu[MAXLONURL]; // Url de la pagina de menu para el browser
|
|
||||||
char urlmsg[MAXLONURL]; // Url de la página de mensajed para el browser
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct{ // Estructura usada para referenciar las funciones que procesan las tramas
|
|
||||||
char nf[LONFUN]; // Nombre de la función
|
|
||||||
BOOLEAN (*fptr)(TRAMA*); // Puntero a la función que procesa la trama
|
|
||||||
}MSGFUN;
|
|
||||||
MSGFUN tbfuncionesClient[MAXIMAS_FUNCIONES];
|
|
||||||
// ________________________________________________________________________________________________________
|
|
||||||
// Tabla de errores de la ejecución de los scripts
|
|
||||||
// ________________________________________________________________________________________________________
|
|
||||||
char* tbErroresScripts[]={"Se han generado errores desconocidos. No se puede continuar la ejecución de este módulo",\
|
|
||||||
"001-Formato de ejecución incorrecto.",\
|
|
||||||
"002-Fichero o dispositivo no encontrado",\
|
|
||||||
"003-Error en partición de disco",\
|
|
||||||
"004-Partición o fichero bloqueado",\
|
|
||||||
"005-Error al crear o restaurar una imagen",\
|
|
||||||
"006-Sin sistema operativo",\
|
|
||||||
"007-Programa o función BOOLEAN no ejecutable",\
|
|
||||||
"008-Error en la creación del archivo de eco para consola remota",\
|
|
||||||
"009-Error en la lectura del archivo temporal de intercambio",\
|
|
||||||
"010-Error al ejecutar la llamada a la interface de administración",\
|
|
||||||
"011-La información retornada por la interface de administración excede de la longitud permitida",\
|
|
||||||
"012-Error en el envío de fichero por la red",\
|
|
||||||
"013-Error en la creación del proceso hijo",\
|
|
||||||
"014-Error de escritura en destino",\
|
|
||||||
"015-Sin Cache en el Cliente",\
|
|
||||||
"016-No hay espacio en la cache para almacenar fichero-imagen",\
|
|
||||||
"017-Error al Reducir el Sistema Archivos",\
|
|
||||||
"018-Error al Expandir el Sistema Archivos",\
|
|
||||||
"019-Valor fuera de rango o no válido.",\
|
|
||||||
"020-Sistema de archivos desconocido o no se puede montar",\
|
|
||||||
"021-Error en partición de caché local",\
|
|
||||||
"022-El disco indicado no contiene una particion GPT",\
|
|
||||||
"023-Error no definido",\
|
|
||||||
"024-Error no definido",\
|
|
||||||
"025-Error no definido",\
|
|
||||||
"026-Error no definido",\
|
|
||||||
"027-Error no definido",\
|
|
||||||
"028-Error no definido",\
|
|
||||||
"029-Error no definido",\
|
|
||||||
"030-Error al restaurar imagen - Imagen mas grande que particion",\
|
|
||||||
"031-Error al realizar el comando updateCache",\
|
|
||||||
"032-Error al formatear",\
|
|
||||||
"033-Archivo de imagen corrupto o de otra versión de partclone",\
|
|
||||||
"034-Error no definido",\
|
|
||||||
"035-Error no definido",\
|
|
||||||
"036-Error no definido",\
|
|
||||||
"037-Error no definido",\
|
|
||||||
"038-Error no definido",\
|
|
||||||
"039-Error no definido",\
|
|
||||||
"040-Error imprevisto no definido",\
|
|
||||||
"041-Error no definido",\
|
|
||||||
"042-Error no definido",\
|
|
||||||
"043-Error no definido",\
|
|
||||||
"044-Error no definido",\
|
|
||||||
"045-Error no definido",\
|
|
||||||
"046-Error no definido",\
|
|
||||||
"047-Error no definido",\
|
|
||||||
"048-Error no definido",\
|
|
||||||
"049-Error no definido",\
|
|
||||||
"050-Error en la generación de sintaxis de transferenica unicast",\
|
|
||||||
"051-Error en envio UNICAST de una particion",\
|
|
||||||
"052-Error en envio UNICAST de un fichero",\
|
|
||||||
"053-Error en la recepcion UNICAST de una particion",\
|
|
||||||
"054-Error en la recepcion UNICAST de un fichero",\
|
|
||||||
"055-Error en la generacion de sintaxis de transferenica Multicast",\
|
|
||||||
"056-Error en envio MULTICAST de un fichero",\
|
|
||||||
"057-Error en la recepcion MULTICAST de un fichero",\
|
|
||||||
"058-Error en envio MULTICAST de una particion",\
|
|
||||||
"059-Error en la recepcion MULTICAST de una particion",\
|
|
||||||
"060-Error en la conexion de una sesion UNICAST|MULTICAST con el MASTER",\
|
|
||||||
"061-Error no definido",\
|
|
||||||
"062-Error no definido",\
|
|
||||||
"063-Error no definido",\
|
|
||||||
"064-Error no definido",\
|
|
||||||
"065-Error no definido",\
|
|
||||||
"066-Error no definido",\
|
|
||||||
"067-Error no definido",\
|
|
||||||
"068-Error no definido",\
|
|
||||||
"069-Error no definido",\
|
|
||||||
"070-Error al montar una imagen sincronizada.",\
|
|
||||||
"071-Imagen no sincronizable (es monolitica).",\
|
|
||||||
"072-Error al desmontar la imagen.",\
|
|
||||||
"073-No se detectan diferencias entre la imagen basica y la particion.",\
|
|
||||||
"074-Error al sincronizar, puede afectar la creacion/restauracion de la imagen.",\
|
|
||||||
"Error desconocido "
|
|
||||||
};
|
|
||||||
#define MAXERRORSCRIPT 74 // Error máximo cometido
|
|
||||||
// ________________________________________________________________________________________________________
|
|
||||||
// Prototipo de funciones
|
|
||||||
// ________________________________________________________________________________________________________
|
|
||||||
BOOLEAN autoexecCliente(TRAMA*);
|
|
||||||
BOOLEAN RESPUESTA_AutoexecCliente(TRAMA*);
|
|
||||||
void procesaComandos(TRAMA*);
|
|
||||||
|
|
||||||
BOOLEAN tomaConfiguracion(char*);
|
|
||||||
BOOLEAN tomaIPlocal(void);
|
|
||||||
void scriptLog(const char *,int );
|
|
||||||
|
|
||||||
BOOLEAN gestionaTrama(TRAMA *);
|
|
||||||
BOOLEAN inclusionCliente();
|
|
||||||
char* LeeConfiguracion();
|
|
||||||
BOOLEAN RESPUESTA_InclusionCliente(TRAMA *);
|
|
||||||
|
|
||||||
BOOLEAN comandosPendientes(TRAMA*);
|
|
||||||
BOOLEAN NoComandosPtes(TRAMA *);
|
|
||||||
|
|
||||||
BOOLEAN respuestaEjecucionComando(TRAMA *,int,char*);
|
|
||||||
BOOLEAN Sondeo(TRAMA *);
|
|
||||||
BOOLEAN Actualizar(TRAMA *);
|
|
||||||
int Purgar(TRAMA* );
|
|
||||||
|
|
||||||
BOOLEAN ConsolaRemota(TRAMA*);
|
|
||||||
|
|
||||||
BOOLEAN Arrancar(TRAMA *);
|
|
||||||
BOOLEAN Apagar(TRAMA *);
|
|
||||||
BOOLEAN Reiniciar(TRAMA *);
|
|
||||||
BOOLEAN IniciarSesion(TRAMA *);
|
|
||||||
BOOLEAN CrearImagen(TRAMA *);
|
|
||||||
BOOLEAN CrearImagenBasica(TRAMA *);
|
|
||||||
BOOLEAN CrearSoftIncremental(TRAMA*);
|
|
||||||
|
|
||||||
BOOLEAN InventarioHardware(TRAMA *);
|
|
||||||
BOOLEAN InventariandoSoftware(TRAMA *,BOOLEAN,char*);
|
|
||||||
BOOLEAN EjecutarScript(TRAMA *);
|
|
||||||
BOOLEAN ejecutaArchivo(char*,TRAMA*);
|
|
||||||
|
|
||||||
BOOLEAN cuestionCache(char*);
|
|
||||||
int cargaPaginaWeb(char *);
|
|
||||||
void muestraMenu(void);
|
|
||||||
void muestraMensaje(int idx,char*);
|
|
||||||
|
|
||||||
BOOLEAN enviaMensajeServidor(SOCKET *,TRAMA *,char);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Binary file not shown.
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
poweroff
|
|
||||||
exit 0
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#______________________________________
|
|
||||||
#
|
|
||||||
# PARAMETROS RECIBIDOS DESDE EL CLIENTE
|
|
||||||
# $1 modo (admin, user)
|
|
||||||
#______________________________________
|
|
||||||
|
|
||||||
# Error si llamada no se realliza desde OpenGnsys Client.
|
|
||||||
PROG=$(basename $0)
|
|
||||||
CALLER=$(ogGetCaller)
|
|
||||||
if ! $(ogCheckStringInGroup "$CALLER" "CrearImagen ConsolaRemota CrearImagenBasica CrearSoftIncremental"); then
|
|
||||||
ogRaiseError $OG_ERR_NOTEXEC "$CALLER -> $PROG"
|
|
||||||
exit $?
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Salir si el repositorio está bloquedo (tiene ficheros abiertos).
|
|
||||||
REPOIP=$(ogGetRepoIp)
|
|
||||||
if [ -z "$REPOIP" ]; then
|
|
||||||
ogRaiseError $OG_ERR_NOTFOUND "repo no montado"
|
|
||||||
exit $?
|
|
||||||
fi
|
|
||||||
if ogIsRepoLocked; then
|
|
||||||
ogRaiseError $OG_ERR_LOCKED "repo $REPOIP"
|
|
||||||
exit $?
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Comprobar protocolo y modo de acceso.
|
|
||||||
PROTO=${ogprotocol:-"smb"}
|
|
||||||
case "$PROTO" in
|
|
||||||
nfs|smb) ;;
|
|
||||||
*) ogRaiseError $OG_ERR_FORMAT "protocolo desconocido $PROTO"
|
|
||||||
exit $? ;;
|
|
||||||
esac
|
|
||||||
case "$1" in
|
|
||||||
admin) MODE="rw" ;;
|
|
||||||
user) MODE="ro" ;;
|
|
||||||
*) ogRaiseError $OG_ERR_FORMAT "modo desconocido $1"
|
|
||||||
exit $? ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Desmontar repositorio y volver a montarlo con el modo adecuado.
|
|
||||||
umount $OGIMG
|
|
||||||
# Unidad organizativa
|
|
||||||
[ "$ogunit" != "" ] && OGUNIT="/$ogunit"
|
|
||||||
ogEcho info "$PROG: Montar repositorio $REPO por $PROTO en modo $1"
|
|
||||||
case "$PROTO" in
|
|
||||||
nfs) mount -t nfs $REPOIP:$OGIMG$OGUNIT $OGIMG -o $MODE ;;
|
|
||||||
smb) PASS=$(grep "^[ ]*\(export \)\?OPTIONS=" /scripts/ogfunctions 2>&1 | \
|
|
||||||
sed 's/\(.*\)pass=\(\w*\)\(.*\)/\2/')
|
|
||||||
PASS=${PASS:-"og"}
|
|
||||||
mount.cifs //$REPOIP/ogimages$OGUNIT $OGIMG -o $MODE,serverino,acl,username=opengnsys,password=$PASS
|
|
||||||
esac
|
|
||||||
|
|
||||||
|
|
@ -1,159 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
|
|
||||||
#Load engine configurator from engine.cfg file.
|
|
||||||
#Carga el configurador del engine desde el fichero engine.cfg
|
|
||||||
[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
|
|
||||||
|
|
||||||
# Clear temporary file used as log track by httpdlog
|
|
||||||
# Limpia los ficheros temporales usados como log de seguimieincludento para httpdlog
|
|
||||||
echo " " > $OGLOGSESSION; echo " " > $OGLOGCOMMAND; echo " " > ${OGLOGCOMMAND}.tmp
|
|
||||||
|
|
||||||
# Registro de inicio de ejecución
|
|
||||||
ogEcho log session "$MSG_INTERFACE_START $0 $*"
|
|
||||||
|
|
||||||
# Solo ejecutable por OpenGnsys Client.
|
|
||||||
PATH=$PATH:$(dirname $0)
|
|
||||||
PROG=$(basename $0)
|
|
||||||
|
|
||||||
#____________________________________________________________________
|
|
||||||
#
|
|
||||||
# El parámetro $2 es el que aporta toda la información y el $1 se queda obsoleto
|
|
||||||
# Formato de entrada:
|
|
||||||
# dis=Número de disco
|
|
||||||
# *=caracter de separación
|
|
||||||
# che=Vale 0 o 1
|
|
||||||
# *=caracter de separación
|
|
||||||
# $tch=tamaño cache
|
|
||||||
# != caracter de separación
|
|
||||||
#
|
|
||||||
# Y un numero indeterminado de cadenas del tipo siguuenteseparadas por el caracter '$':
|
|
||||||
# par=Número de particion*cod=Código de partición*sfi=Sistema de ficheros*tam=Tamaño de la partición*ope=Operación
|
|
||||||
# @= caracter de separación
|
|
||||||
#____________________________________________________________________
|
|
||||||
|
|
||||||
# Captura de parámetros (se ignora el 1er parámetro y se eliminan espacios y tabuladores).
|
|
||||||
#param='dis=1*che=0*tch=70000000!par=1*cpt=NTFS*sfi=NTFS*tam=11000000*ope=0%'
|
|
||||||
shift
|
|
||||||
param="$(echo $* | sed 's/[ ]//g')"
|
|
||||||
|
|
||||||
# Activa navegador para ver progreso
|
|
||||||
coproc /opt/opengnsys/bin/browser -qws http://localhost/cgi-bin/httpd-log.sh
|
|
||||||
|
|
||||||
# Leer los dos bloques de parámetros, separados por '!'.
|
|
||||||
declare -a TBPRM
|
|
||||||
|
|
||||||
IFS='!' read -a TBPRM <<<"$param"
|
|
||||||
pparam="${TBPRM[0]}" # Parámetros generales del disco.
|
|
||||||
sparam="${TBPRM[1]}" # Parámetros de particionado y formateo.
|
|
||||||
|
|
||||||
|
|
||||||
# Toma valores de disco y caché, separados por "*".
|
|
||||||
# Los valores están en las variables $dis: disco, $che: existe cache (1, 0), $tch: Tamaño de la cache.
|
|
||||||
unset TBPRM
|
|
||||||
IFS='*' read -a TBPRM <<<"$pparam"
|
|
||||||
[[ ${TBPRM} =~ = ]] && eval ${TBPRM[@]} # Comprobar asignación antes de exportar valores.
|
|
||||||
|
|
||||||
# Error si no se define el parámetro de disco (dis).
|
|
||||||
[ -z "$dis" ] && exit $OG_ERR_FORMAT
|
|
||||||
|
|
||||||
# Toma valores de distribución de particiones, separados por "%".
|
|
||||||
declare -a CFG # Valores de configuración.
|
|
||||||
declare -a TBP # Tabla de particionado.
|
|
||||||
declare -a TBF # Tabla de formateo.
|
|
||||||
|
|
||||||
unset TBPRM
|
|
||||||
IFS='%' read -a TBPRM <<<"$sparam"
|
|
||||||
|
|
||||||
maxp=0
|
|
||||||
for ((i=0; i<${#TBPRM[@]}; i++)); do
|
|
||||||
# Leer datos de la partición, separados por "*".
|
|
||||||
unset par
|
|
||||||
IFS='*' read -a CFG <<<"${TBPRM[i]}" 2>/dev/null
|
|
||||||
[[ ${CFG} =~ = ]] && eval ${CFG[@]} # Comprobar asignación antes de exportar valores.
|
|
||||||
# Componer datos de particionado.
|
|
||||||
if [ "$cpt" != "CACHE" ]; then
|
|
||||||
TBP[par]="$cpt:$tam"
|
|
||||||
fi
|
|
||||||
# Si se activa operación de formatear, componer datos de formateo.
|
|
||||||
if [ "$ope" == 1 ]; then
|
|
||||||
# Comprobamos que la particion y el s.f sean validos.
|
|
||||||
ogCheckStringInGroup $cpt "EMPTY EXTENDED LINUX-LVM LVM ZPOOL"
|
|
||||||
[ $? -ne 0 ] && TBF[par]="$sfi"
|
|
||||||
fi
|
|
||||||
# Obtener la partición mayor.
|
|
||||||
[ $par -gt $maxp ] && maxp=$par
|
|
||||||
done
|
|
||||||
#____________________________________________________
|
|
||||||
#
|
|
||||||
# Proceso
|
|
||||||
#____________________________________________________
|
|
||||||
|
|
||||||
# Tamaño actual de la cache
|
|
||||||
CACHESIZE=$(ogGetCacheSize)
|
|
||||||
|
|
||||||
# Desmonta todas las particiones y la caché
|
|
||||||
|
|
||||||
ogEcho session log "[10] $MSG_HELP_ogUnmountAll"
|
|
||||||
ogUnmountAll $dis &>/dev/null
|
|
||||||
ogUnmountCache
|
|
||||||
|
|
||||||
# Elimina la tabla de particiones
|
|
||||||
if [ `ogGetPartitionTableType 1` != 'MSDOS' ]; then
|
|
||||||
ogDeletePartitionTable $dis
|
|
||||||
ogExecAndLog COMMAND ogUpdatePartitionTable $dis
|
|
||||||
|
|
||||||
# Crea tabla de particiones MSDOS (NOTA: adaptar para tablas GPT).
|
|
||||||
ogCreatePartitionTable $dis MSDOS
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Inicia la cache.
|
|
||||||
if echo "$sparam" |grep "CACHE" >/dev/null; then
|
|
||||||
ogEcho session log "[30] $MSG_HELP_ogCreateCache"
|
|
||||||
ogEcho session log " initCache $tch"
|
|
||||||
ogExecAndLog COMMAND initCache $tch
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Definir particionado.
|
|
||||||
ogEcho session log "[50] $MSG_HELP_ogCreatePartitions"
|
|
||||||
ogEcho session log " ogCreatePartitions $dis ${TBP[@]}"
|
|
||||||
ogExecAndLog COMMAND ogCreatePartitions $dis ${TBP[@]}
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
kill $COPROC_PID
|
|
||||||
exit $(ogRaiseError session log $OG_ERR_GENERIC "ogCreatePartitions $dis ${TBP[@]}")
|
|
||||||
fi
|
|
||||||
ogExecAndLog COMMAND ogUpdatePartitionTable $dis
|
|
||||||
|
|
||||||
# Formatear particiones
|
|
||||||
ogEcho session log "[70] $MSG_HELP_ogFormat"
|
|
||||||
|
|
||||||
for ((par=1; par<=$maxp; par++)); do
|
|
||||||
case "${TBF[par]}" in
|
|
||||||
CACHE) # Si el tamaño es distinto ya se ha formateado.
|
|
||||||
if [ "$CACHESIZE" == $tch ]; then
|
|
||||||
ogEcho session log " ogFormatCache"
|
|
||||||
ogExecAndLog COMMAND ogFormatCache
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"") ;;
|
|
||||||
*) ogEcho session log " ogFormatFs $dis $par ${TBF[par]}"
|
|
||||||
ogExecAndLog COMMAND ogFormatFs $dis $par ${TBF[par]}
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
kill $COPROC_PID
|
|
||||||
exit $(ogRaiseError session log $OG_ERR_GENERIC "ogFormatFs $dis $par ${TBF[par]}");
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
RETVAL=$?
|
|
||||||
# Registro de fin de ejecución
|
|
||||||
ogEcho log session "$MSG_INTERFACE_END $RETVAL"
|
|
||||||
|
|
||||||
#___________________________________________________________________
|
|
||||||
#
|
|
||||||
# Retorno
|
|
||||||
#___________________________________________________________________
|
|
||||||
|
|
||||||
kill $COPROC_PID
|
|
||||||
exit 0
|
|
||||||
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
chmod +x $1
|
|
||||||
$1>$2 || exit $?
|
|
||||||
|
|
@ -1,91 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#___________________________________________________
|
|
||||||
#
|
|
||||||
# PARAMETROS RECIBIDOS DESDE EL CLIENTE:
|
|
||||||
# $1 Número de disco
|
|
||||||
# $2 Número de particion
|
|
||||||
# $3 Nombre canónico de la imagen (sin extensión)
|
|
||||||
# $4 Dirección del repositorio (REPO, por defecto)
|
|
||||||
#___________________________________________________
|
|
||||||
|
|
||||||
|
|
||||||
#$OG_ERR_NOTEXEC Si no es llamada por OG client
|
|
||||||
#$OG_ERR_LOCKED=4 Si la particion está bloqueada.
|
|
||||||
|
|
||||||
|
|
||||||
#Codigos de error del scripts createImage
|
|
||||||
#@exception OG_ERR_FORMAT # 1 formato incorrecto.
|
|
||||||
#@exception OG_ERR_PARTITION # 3 Error en partición de disco o en su sistema de archivos
|
|
||||||
#@exception OG_ERR_IMAGE # 5 Error en funcion ogCreateImage o ogRestoreImage.
|
|
||||||
#@exception OG_ERR_NOTWRITE # 14 error de escritura
|
|
||||||
#@exception OG_ERR_NOTCACHE # 15 si cache no existe 15
|
|
||||||
#@exception OG_ERR_CACHESIZE # 16 si espacio de la cache local o remota no tiene espacio 16
|
|
||||||
#@exception OG_ERR_REDUCEFS # 17 error al reducir sistema de archivos.
|
|
||||||
#@exception OG_ERR_EXTENDFS # 18 Errror al expandir el sistema de archivos.
|
|
||||||
|
|
||||||
|
|
||||||
#Códigos de error de la funcion ogCreateImage
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TIME1=$SECONDS
|
|
||||||
|
|
||||||
#Load engine configurator from engine.cfg file.
|
|
||||||
#Carga el configurador del engine desde el fichero engine.cfg
|
|
||||||
[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
|
|
||||||
|
|
||||||
# Clear temporary file used as log track by httpdlog
|
|
||||||
# Limpia los ficheros temporales usados como log de seguimiento para httpdlog
|
|
||||||
echo " " > $OGLOGSESSION; echo " " > $OGLOGCOMMAND; echo " " > ${OGLOGCOMMAND}.tmp
|
|
||||||
|
|
||||||
# Registro de inicio de ejecución
|
|
||||||
ogEcho log session "$MSG_INTERFACE_START $0 $*"
|
|
||||||
|
|
||||||
# Solo ejecutable por OpenGnsys Client.
|
|
||||||
PATH=$PATH:$(dirname $0)
|
|
||||||
PROG=$(basename $0)
|
|
||||||
CALLER=$(ogGetCaller)
|
|
||||||
if [ "$CALLER" != "ogAdmClient" ]; then
|
|
||||||
ogRaiseError $OG_ERR_NOTEXEC "$CALLER -> $PROG"
|
|
||||||
exit $?
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Valor por defecto para el repositorio.
|
|
||||||
REPO=${4:-"REPO"}
|
|
||||||
[ "$REPO" == "$(ogGetIpAddress)" ] && REPO="CACHE"
|
|
||||||
# Si es una ip y es distinta a la del recurso samba cambiamos de REPO.
|
|
||||||
ogCheckIpAddress $REPO
|
|
||||||
if [ $? == 0 -o $REPO == "REPO" ] ; then
|
|
||||||
# Unidad organizativa
|
|
||||||
[ "$ogunit" != "" ] && OGUNIT="$ogunit"
|
|
||||||
# Si falla el cambio -> salimos con error repositorio no valido
|
|
||||||
ogChangeRepo $REPO $OGUNIT || exit $(ogRaiseError $OG_ERR_NOTFOUND '$REPO'; echo $?)
|
|
||||||
REPO="REPO"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Si el destino es REPO y el cliente no está en modo "admin"; activar repositorio para escritura,
|
|
||||||
if [ "$REPO" == "REPO" -a "$boot" != "admin" ]
|
|
||||||
then
|
|
||||||
CambiarAcceso admin &>> $OGLOGFILE
|
|
||||||
RETVAL=$?
|
|
||||||
[ $RETVAL -gt 0 ] && exit $RETVAL
|
|
||||||
fi
|
|
||||||
|
|
||||||
ogEcho createImage "$1" "$2" "$4" /"$3"
|
|
||||||
# Si existe, ejecuta script personalizado "createImageCustom"; si no, llama al genérico "createImage".
|
|
||||||
if which createImageCustom &>/dev/null; then
|
|
||||||
createImageCustom "$1" "$2" "$4" /"$3" &>> $OGLOGCOMMAND
|
|
||||||
else
|
|
||||||
createImage "$1" "$2" "$4" /"$3" &>> $OGLOGCOMMAND
|
|
||||||
fi
|
|
||||||
RETVAL=$?
|
|
||||||
|
|
||||||
# Cambiar acceso a modo usuario, si es necesario.
|
|
||||||
[ "$REPO" == "REPO" -a "$boot" != "admin" ] && CambiarAcceso user
|
|
||||||
|
|
||||||
# Registro de fin de ejecución
|
|
||||||
ogEcho log session "$MSG_INTERFACE_END $RETVAL"
|
|
||||||
|
|
||||||
exit $RETVAL
|
|
||||||
|
|
||||||
|
|
@ -1,98 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
#___________________________________________________________________
|
|
||||||
#
|
|
||||||
# CREAR IMAGEN BÁSICA
|
|
||||||
#___________________________________________________________________
|
|
||||||
#
|
|
||||||
# Parámetros recibidos desde el cliente:
|
|
||||||
#
|
|
||||||
# $1 Número de disco
|
|
||||||
# $2 Número de particion
|
|
||||||
# $3 Nombre canónico de la imagen básica (sin extensión)
|
|
||||||
# $4 Dirección del repositorio
|
|
||||||
# $5 Es una cadena "nnn" tipo flags que codifica varios parametros.
|
|
||||||
# Tiene el formato "nnn" donde "n" vale 0 ó 1.
|
|
||||||
# 1XX: Gestionar fichero completo en lugar de diferencas
|
|
||||||
# X1X: Eliminar archivos de la imagen que no estén en la partición
|
|
||||||
# XX1: Comprimir archivos para enviarlos por la red
|
|
||||||
# El valor X indica que no importa el valor que tenga el dato
|
|
||||||
# $6 Es una cadena "nnnn" tipo flags que codifica varios parametros.
|
|
||||||
# Tiene el formato "nnnn" donde "n" vale 0 ó 1.
|
|
||||||
# 1XXX: Borrar la imagen del repositorio antes de crearla
|
|
||||||
# X1XX: Copiar Imagen básica también a la cache
|
|
||||||
# XX1X: Borrar previamente la imagen de la cache antes de copiarla
|
|
||||||
# XXX1: No borrar archivos en destino
|
|
||||||
# El valor X indica que no importa el valor que tenga el dato
|
|
||||||
# $7 Método de syncronización 1=Sincronización1 2=Sincronizacion2
|
|
||||||
# $8 Ruta de origen de la Imagen (Carpeta)
|
|
||||||
|
|
||||||
#___________________________________________________________________
|
|
||||||
#
|
|
||||||
# Control parámetros
|
|
||||||
#___________________________________________________________________
|
|
||||||
|
|
||||||
|
|
||||||
PROG="$(basename $0)"
|
|
||||||
if [ $# -lt 7 ]; then
|
|
||||||
usage=" ndisco nparticion nombre_imagen_basica ip_repositorio"
|
|
||||||
usage="$usage copiar_a_caché Borrar_cache_previamente Ruta_origen"
|
|
||||||
ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG $usage"
|
|
||||||
exit $?
|
|
||||||
fi
|
|
||||||
|
|
||||||
#Load engine configurator from engine.cfg file.
|
|
||||||
#Carga el configurador del engine desde el fichero engine.cfg
|
|
||||||
[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
|
|
||||||
|
|
||||||
# Clear temporary file used as log track by httpdlog
|
|
||||||
# Limpia los ficheros temporales usados como log de seguimiento para httpdlog
|
|
||||||
echo -n "" > $OGLOGSESSION; echo -n "" > $OGLOGCOMMAND
|
|
||||||
|
|
||||||
# Registro de inicio de ejecución
|
|
||||||
ogEcho log session "$MSG_INTERFACE_START $0 $*"
|
|
||||||
|
|
||||||
# Si el destino es REPO y el cliente no está en modo "admin"; activar repositorio para escritura,
|
|
||||||
PATH=$PATH:$(dirname $0)
|
|
||||||
CLIENTIP=$(ogGetIpAddress)
|
|
||||||
[ "$4" == "$CLIENTIP" ] && DEST=CACHE || DEST=REPO
|
|
||||||
if [ "$DEST" == "REPO" -a "$boot" != "admin" ]; then
|
|
||||||
CambiarAcceso admin &>> $OGLOGFILE
|
|
||||||
RETVAL=$?
|
|
||||||
[ $RETVAL -gt 0 ] && exit $RETVAL
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $7 -eq 1 ]; then
|
|
||||||
#sincronizacion1
|
|
||||||
ogCrearImagenBasica "$@"
|
|
||||||
RETVAL=$?
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $7 -eq 2 ]; then
|
|
||||||
# Sincronizacion2
|
|
||||||
flag=$5
|
|
||||||
WHOLE=${flag:0:1}
|
|
||||||
DELFILE=${flag:1:1}
|
|
||||||
COMPRESS=${flag:2:1}
|
|
||||||
|
|
||||||
# Nota los valores se pasan como variables de entorno,
|
|
||||||
# la idea es que mas adelante vayan en el fichero PXE.
|
|
||||||
[ $WHOLE -eq 1 ] && export ogrsyncw=true || export ogrsyncw=false
|
|
||||||
[ $DELFILE -eq 1 ] && export ogrsyncdel=true || export ogrsyncdel=false
|
|
||||||
[ $COMPRESS -eq 1 ] && export ogrsyncz=true || export ogrsyncz=false
|
|
||||||
|
|
||||||
# [ "$4" == "0.0.0.0" ] && DEST="CACHE" || DEST="REPO"
|
|
||||||
|
|
||||||
createBaseImage $1 $2 $DEST "$3"
|
|
||||||
RETVAL=$?
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Si estamos en modo user montamos el repositorio en modo lectura.
|
|
||||||
[ "$DEST" == "REPO" -a "$boot" != "admin" ] && CambiarAcceso user
|
|
||||||
# Registro de fin de ejecución
|
|
||||||
ogEcho log session "$MSG_INTERFACE_END $RETVAL"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
exit $RETVAL
|
|
||||||
|
|
||||||
|
|
@ -1,98 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
#___________________________________________________________________
|
|
||||||
#
|
|
||||||
# CREAR IMAGEN INCREMENTAL
|
|
||||||
#___________________________________________________________________
|
|
||||||
#
|
|
||||||
# Parámetros recibidos desde el cliente:
|
|
||||||
#
|
|
||||||
# $1 Número de disco
|
|
||||||
# $2 Número de particion
|
|
||||||
# $3 Nombre canónico de la imagen básica (sin extensión)
|
|
||||||
# $4 Dirección del repositorio
|
|
||||||
# $5 Nombre canónico de la imagen incremental (sin extensión)
|
|
||||||
# $6 Es una cadena "nnn" tipo flags que codifica varios parametros.
|
|
||||||
# Tiene el formato "nnn" donde "n" vale 0 ó 1.
|
|
||||||
# 1XX: Gestionar fichero completo en lugar de diferencas
|
|
||||||
# X1X: Eliminar archivos de la imagen que no estén en la partición
|
|
||||||
# XX1: Comprimir archivos para enviarlos por la red
|
|
||||||
# El valor X indica que no importa el valor que tenga el dato
|
|
||||||
# $7 Es una cadena "nnnn" tipo flags que codifica varios parametros.
|
|
||||||
# Tiene el formato "nnnn" donde "n" vale 0 ó 1.
|
|
||||||
# 1XXX: Borrar la imagen incremental del repositorio antes de crearla
|
|
||||||
# X1XX: Copiar imagen incremental también a la cache
|
|
||||||
# XX1X: Borrar previamente la imagen incremental de la cache antes de copiarla
|
|
||||||
# XXX1: No borrar archivos en destino
|
|
||||||
# El valor X indica que no importa el valor que tenga el dato
|
|
||||||
# $8 Método de syncronización 1=Sincronización1 2=Sincronizacion2
|
|
||||||
# $9 Ruta de origen de la Imagen (Carpeta)
|
|
||||||
|
|
||||||
#___________________________________________________________________
|
|
||||||
#
|
|
||||||
# Control parámetros
|
|
||||||
#___________________________________________________________________
|
|
||||||
PROG="$(basename $0)"
|
|
||||||
if [ $# -lt 8 ]; then
|
|
||||||
usage=" ndisco nparticion nombre_imagen_basica ip_repositorio nombre_imagen_incremental"
|
|
||||||
usage="$usage copiar_a_caché Borrar_cache_previamente Ruta_origen"
|
|
||||||
ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG $usage"
|
|
||||||
exit $?
|
|
||||||
fi
|
|
||||||
|
|
||||||
#Load engine configurator from engine.cfg file.
|
|
||||||
#Carga el configurador del engine desde el fichero engine.cfg
|
|
||||||
[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
|
|
||||||
|
|
||||||
# Clear temporary file used as log track by httpdlog
|
|
||||||
# Limpia los ficheros temporales usados como log de seguimiento para httpdlog
|
|
||||||
echo -n "" > $OGLOGSESSION; echo -n "" > $OGLOGCOMMAND
|
|
||||||
|
|
||||||
# Registro de inicio de ejecución
|
|
||||||
ogEcho log session "$MSG_INTERFACE_START $0 $*"
|
|
||||||
|
|
||||||
|
|
||||||
# Si el destino es REPO y el cliente no está en modo "admin"; activar repositorio para escritura,
|
|
||||||
PATH=$PATH:$(dirname $0)
|
|
||||||
CLIENTIP=$(ogGetIpAddress)
|
|
||||||
[ "$4" == "$CLIENTIP" ] && DEST=CACHE || DEST=REPO
|
|
||||||
if [ "$DEST" == "REPO" -a "$boot" != "admin" ]; then
|
|
||||||
CambiarAcceso admin &>> $OGLOGFILE
|
|
||||||
RETVAL=$?
|
|
||||||
[ $RETVAL -gt 0 ] && exit $RETVAL
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $8 -eq 1 ]; then
|
|
||||||
#sincronizacion1
|
|
||||||
ogCrearSoftIncremental "$@"
|
|
||||||
RETVAL=$?
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if [ $8 -eq 2 ]; then
|
|
||||||
#sincronizacion 2
|
|
||||||
flag=$6
|
|
||||||
WHOLE=${flag:0:1}
|
|
||||||
DELFILE=${flag:1:1}
|
|
||||||
COMPRESS=${flag:2:1}
|
|
||||||
|
|
||||||
# Nota los valores se pasan como variables de entorno,
|
|
||||||
# la idea es que mas adelante vayan en el fichero PXE.
|
|
||||||
[ $WHOLE -eq 1 ] && export ogrsyncw=true || export ogrsyncw=false
|
|
||||||
[ $DELFILE -eq 1 ] && export ogrsyncdel=true || export ogrsyncdel=false
|
|
||||||
[ $COMPRESS -eq 1 ] && export ogrsyncz=true || export ogrsyncz=false
|
|
||||||
|
|
||||||
# REPOSITORIO: Si la ip es la del propio equipo CACHE, si no REPO
|
|
||||||
#CLIENTIP=$(ogGetIpAddress)
|
|
||||||
#[ "$4" == "$CLIENTIP" ] && DEST=CACHE || DEST=REPO
|
|
||||||
createDiffImage $1 $2 $DEST "$3" "$5"
|
|
||||||
RETVAL=$?
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Si estamos en modo user montamos el repositorio en modo lectura.
|
|
||||||
[ "$DEST" == "REPO" -a "$boot" != "admin" ] && CambiarAcceso user
|
|
||||||
|
|
||||||
# Registro de fin de ejecución
|
|
||||||
ogEcho log session "$MSG_INTERFACE_END $RETVAL"
|
|
||||||
|
|
||||||
exit $RETVAL
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
TIME1=$SECONDS
|
|
||||||
|
|
||||||
|
|
||||||
#Load engine configurator from engine.cfg file.
|
|
||||||
#Carga el configurador del engine desde el fichero engine.cfg
|
|
||||||
[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
|
|
||||||
|
|
||||||
# Clear temporary file used as log track by httpdlog
|
|
||||||
# Limpia los ficheros temporales usados como log de seguimiento para httpdlog
|
|
||||||
echo -n "" > $OGLOGSESSION; echo -n "" > $OGLOGCOMMAND
|
|
||||||
|
|
||||||
# Registro de inicio de ejecución
|
|
||||||
ogEcho log session "$MSG_INTERFACE_START $0 $*"
|
|
||||||
|
|
||||||
echo -e "\n Instrucciones a ejecutar: *****************************" >> $OGLOGFILE
|
|
||||||
cat $1 >> $OGLOGFILE
|
|
||||||
|
|
||||||
|
|
||||||
echo -e "\n Salida de las instrucciones: *****************************" >> $OGLOGFILE
|
|
||||||
chmod +x $1
|
|
||||||
# Si mandamos la salida a OGLOGCOMMAND reescribimos lo que manda el comando.
|
|
||||||
#$1 &>> $OGLOGCOMMAND
|
|
||||||
$1
|
|
||||||
RETVAL=$?
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TIME=$[SECONDS-TIME1]
|
|
||||||
if [ $RETVAL == 0 ]
|
|
||||||
then
|
|
||||||
ogEcho log session "[100] Duracion de la operacion $[TIME/60]m $[TIME%60]s"
|
|
||||||
else
|
|
||||||
ogRaiseError log session $RETVAL
|
|
||||||
ogEcho log session error "Operacion no realizada"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Registro de fin de ejecución
|
|
||||||
ogEcho log session "$MSG_INTERFACE_END $RETVAL"
|
|
||||||
|
|
||||||
|
|
||||||
exit $RETVAL
|
|
||||||
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# UHU - Comprobamos el disco, si solo hay un parametro, disco es 1, por compatibilidad con clientes antiguos
|
|
||||||
if [ $# == 1 ]
|
|
||||||
then
|
|
||||||
disk=1
|
|
||||||
part=$1
|
|
||||||
else
|
|
||||||
disk=$1
|
|
||||||
part=$2
|
|
||||||
fi
|
|
||||||
|
|
||||||
bootOs $disk $part
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# Script de interfaz para guardar en un fichero el inventario de hardware de un cliente.
|
|
||||||
|
|
||||||
file=$(listHardwareInfo)
|
|
||||||
tail -n+2 $file >$1
|
|
||||||
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
TIME1=$SECONDS
|
|
||||||
|
|
||||||
#Carga el configurador del engine desde el fichero engine.cfg
|
|
||||||
[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
|
|
||||||
|
|
||||||
# Limpia los ficheros temporales usados como log de seguimiento para httpdlog
|
|
||||||
echo -n " " | tee $OGLOGSESSION $OGLOGCOMMAND ${OGLOGCOMMAND}.tmp
|
|
||||||
|
|
||||||
# Registro de inicio de ejecución
|
|
||||||
ogEcho log session "$MSG_INTERFACE_START $0 $*"
|
|
||||||
|
|
||||||
file=$(listSoftwareInfo $1 $2)
|
|
||||||
cp $file $3
|
|
||||||
|
|
||||||
TIME=$[SECONDS-TIME1]
|
|
||||||
ogEcho log session " [ ] $MSG_SCRIPTS_TIME_PARTIAL : $[TIME/60]m $[TIME%60]s"
|
|
||||||
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
reboot
|
|
||||||
exit 0
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
#_______________________________________________________________________________________________________________________________
|
|
||||||
#
|
|
||||||
# PARAMETROS RECIBIDOS DESDE EL CLIENTE:
|
|
||||||
# $1 disco
|
|
||||||
# $2 par=Número de particion
|
|
||||||
# $3 Nombre canónico de la imagen
|
|
||||||
# $4 Dirección IP del repositorio
|
|
||||||
# $5 Protocolo UNICAST MULTICAST TORRENT
|
|
||||||
# $6 Opciones del protocolo
|
|
||||||
#_______________________________________________________________________________________________________________________________
|
|
||||||
|
|
||||||
# Llamar al script de despliegue "deployImage".
|
|
||||||
deployImage "$4" "$3" "$1" "$2" "$5" "$6" "$7" "$8" || exit $?
|
|
||||||
|
|
||||||
|
|
@ -1,89 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
#___________________________________________________________________
|
|
||||||
#
|
|
||||||
# RESTAURAR IMAGEN BÁSICA
|
|
||||||
#___________________________________________________________________
|
|
||||||
#
|
|
||||||
# Parámetros recibidos desde el cliente:
|
|
||||||
#
|
|
||||||
# $1 Número de disco
|
|
||||||
# $2 Número de particion
|
|
||||||
# $3 Nombre canónico de la imagen básica (sin extensión)
|
|
||||||
# $4 Dirección del repositorio
|
|
||||||
# $5 Tipo de transmisión 0=Unicast 1=Multicast
|
|
||||||
# $6 Es una cadena "nnn" tipo flags que codifica varios parametros.
|
|
||||||
# Tiene el formato "nnn" donde "n" vale 0 ó 1.
|
|
||||||
# 1XX: Gestionar fichero completo en lugar de diferencas
|
|
||||||
# X1X: Eliminar archivos de la partición que no estén en la imagen
|
|
||||||
# XX1: Comprimir archivos para enviarlos por la red
|
|
||||||
# El valor X indica que no importa el valor que tenga el dato
|
|
||||||
# $7 Es una cadena "nnnn" tipo flags que codifica varios parametros.
|
|
||||||
# Tiene el formato "nnnn" donde "n" vale 0 ó 1.
|
|
||||||
# 1XXX: Borrar la particion de destino antes de restaurar la imagen basica
|
|
||||||
# X1XX: Copiar Imagen básica también a la cache
|
|
||||||
# XX1X: Borrar previamente la imagen basica de la cache antes de copiarla
|
|
||||||
# XXX1: No borrar archivos en destino
|
|
||||||
# El valor X indica que no importa el valor que tenga el dato
|
|
||||||
# $8 Método de clonación 0=Desde caché 1=Desde repositorio
|
|
||||||
# $9 Metodo de sincronizacion 1=Sincronización1 2=Sincronizacion2
|
|
||||||
# $10 Ruta de origen de la Imagen (Carpeta)
|
|
||||||
|
|
||||||
#___________________________________________________________________
|
|
||||||
#
|
|
||||||
# Control parámetros
|
|
||||||
#___________________________________________________________________
|
|
||||||
|
|
||||||
PROG="$(basename $0)"
|
|
||||||
if [ $# -lt 9 ]; then
|
|
||||||
usage=" ndisco nparticion nombre_imagen_basica ip_repositorio copiar_a_caché "
|
|
||||||
usage="$usage Borrar_cache_previamente metodo_clonación Ruta_origen"
|
|
||||||
ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG $usage"
|
|
||||||
exit $?
|
|
||||||
fi
|
|
||||||
|
|
||||||
#Load engine configurator from engine.cfg file.
|
|
||||||
#Carga el configurador del engine desde el fichero engine.cfg
|
|
||||||
[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
|
|
||||||
|
|
||||||
# Clear temporary file used as log track by httpdlog
|
|
||||||
# Limpia los ficheros temporales usados como log de seguimiento para httpdlog
|
|
||||||
echo -n "" > $OGLOGSESSION; echo " " > $OGLOGCOMMAND
|
|
||||||
|
|
||||||
# Registro de inicio de ejecución
|
|
||||||
ogEcho log session "$MSG_INTERFACE_START $0 $*"
|
|
||||||
|
|
||||||
if [ $9 -eq 1 ]; then
|
|
||||||
#sincronizacion1
|
|
||||||
ogRestaurarImagenBasica "$@"
|
|
||||||
RETVAL=$?
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $9 -eq 2 ]; then
|
|
||||||
#sincronizacion2
|
|
||||||
# Opciones de clonacion
|
|
||||||
flag=$6
|
|
||||||
WHOLE=${flag:0:1}
|
|
||||||
DELFILE=${flag:1:1}
|
|
||||||
COMPRESS=${flag:2:1}
|
|
||||||
|
|
||||||
# Nota los valores se pasan como variables de entorno,
|
|
||||||
# la idea es que mas adelante vayan en el fichero PXE.
|
|
||||||
[ $WHOLE -eq 1 ] && export ogrsyncw=true || export ogrsyncw=false
|
|
||||||
[ $DELFILE -eq 1 ] && export ogrsyncdel=true || export ogrsyncdel=false
|
|
||||||
[ $COMPRESS -eq 1 ] && export ogrsyncz=true || export ogrsyncz=false
|
|
||||||
|
|
||||||
# Origen de la imagen.
|
|
||||||
[ $8 -eq 0 ] && DEST="CACHE" || DEST="REPO"
|
|
||||||
|
|
||||||
# Protocolo de clonacion y opciones
|
|
||||||
PROTO=${5%_*}
|
|
||||||
OPT=${5#*_}
|
|
||||||
|
|
||||||
restoreBaseImage $DEST "$3" $1 $2 $PROTO $OPT
|
|
||||||
RETVAL=$?
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Registro de fin de ejecución
|
|
||||||
ogEcho log session "$MSG_INTERFACE_END $RETVAL"
|
|
||||||
|
|
||||||
exit $RETVAL
|
|
||||||
|
|
@ -1,82 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
#___________________________________________________________________
|
|
||||||
#
|
|
||||||
# RESTAURAR IMAGEN INCREMENTAL
|
|
||||||
#___________________________________________________________________
|
|
||||||
#
|
|
||||||
# Parámetros recibidos desde el cliente:
|
|
||||||
#
|
|
||||||
# $1 Número de disco
|
|
||||||
# $2 Número de particion
|
|
||||||
# $3 Nombre canónico de la imagen básica (sin extensión)
|
|
||||||
# $4 Dirección del repositorio
|
|
||||||
# $5 Nombre canónico del software incremental (sin extensión)
|
|
||||||
# $6 Tipo de transmisión 0=Unicast 1=Multicast
|
|
||||||
# $7 Es una cadena "nnn" tipo flags que codifica varios parametros.
|
|
||||||
# Tiene el formato "nnn" donde "n" vale 0 ó 1.
|
|
||||||
# 1XX: Gestionar fichero completo en lugar de diferencas
|
|
||||||
# X1X: Eliminar archivos de la partición que no estén en la imagen
|
|
||||||
# XX1: Comprimir archivos para enviarlos por la red
|
|
||||||
# El valor X indica que no importa el valor que tenga el dato
|
|
||||||
# $8 Es una cadena "nnnn" tipo flags que codifica varios parametros.
|
|
||||||
# Tiene el formato "nnnn" donde "n" vale 0 ó 1.
|
|
||||||
# 1XXX: Borrar la particion de destino antes de restaurar la imagen basica
|
|
||||||
# X1XX: Copiar Imagen básica también a la cache
|
|
||||||
# XX1X: Borrar previamente la imagen basica de la cache antes de copiarla
|
|
||||||
# XXX1: No borrar archivos en destino
|
|
||||||
# El valor X indica que no importa el valor que tenga el dato
|
|
||||||
# $9 Método de clonación 0=Desde caché 1=Desde repositorio
|
|
||||||
# $10 Metodo de sincronizacion 1=Sincronización1 2=Sincronizacion2
|
|
||||||
# $11 Ruta de origen de la Imagen (Carpeta)
|
|
||||||
|
|
||||||
#___________________________________________________________________
|
|
||||||
#
|
|
||||||
# Control parámetros
|
|
||||||
#___________________________________________________________________
|
|
||||||
#Load engine configurator from engine.cfg file.
|
|
||||||
#Carga el configurador del engine desde el fichero engine.cfg
|
|
||||||
[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
|
|
||||||
|
|
||||||
# Clear temporary file used as log track by httpdlog
|
|
||||||
# Limpia los ficheros temporales usados como log de seguimiento para httpdlog
|
|
||||||
echo " " > $OGLOGSESSION; echo " " > $OGLOGCOMMAND
|
|
||||||
|
|
||||||
# Registro de inicio de ejecución
|
|
||||||
ogEcho log session "$MSG_INTERFACE_START $0 $*"
|
|
||||||
|
|
||||||
|
|
||||||
if [ ${10} -eq 1 ]; then
|
|
||||||
#sincronizacion1
|
|
||||||
ogRestaurarSoftIncremental "$@"
|
|
||||||
RETVAL=$?
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ${10} -eq 2 ]; then
|
|
||||||
#sincronizacion2
|
|
||||||
# Opciones de clonacion
|
|
||||||
flag=$7
|
|
||||||
WHOLE=${flag:0:1}
|
|
||||||
DELFILE=${flag:1:1}
|
|
||||||
COMPRESS=${flag:2:1}
|
|
||||||
|
|
||||||
# Nota los valores se pasan como variables de entorno,
|
|
||||||
# la idea es que mas adelante vayan en el fichero PXE.
|
|
||||||
[ $WHOLE -eq 1 ] && export ogrsyncw=true || export ogrsyncw=false
|
|
||||||
[ $DELFILE -eq 1 ] && export ogrsyncdel=true || export ogrsyncdel=false
|
|
||||||
[ $COMPRESS -eq 1 ] && export ogrsyncz=true || export ogrsyncz=false
|
|
||||||
|
|
||||||
# Origen de la imagen.
|
|
||||||
[ $9 -eq 0 ] && DEST="CACHE" || DEST="REPO"
|
|
||||||
|
|
||||||
# Protocolo de clonacion y opciones
|
|
||||||
PROTO=${6%_*}
|
|
||||||
OPT=${6#*_}
|
|
||||||
|
|
||||||
restoreDiffImage $DEST "$3" "$5" $1 $2 $PROTO $OPT
|
|
||||||
RETVAL=$?
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Registro de fin de ejecución
|
|
||||||
ogEcho log session "$MSG_INTERFACE_END $RETVAL"
|
|
||||||
|
|
||||||
exit $RETVAL
|
|
||||||
|
|
@ -1,88 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#_______________________________________________________________________________________________________________________________
|
|
||||||
#
|
|
||||||
# Formato de salida:
|
|
||||||
# disk=Número de disco\tpar=Número de particion\tcod=Código de partición\tsfi=Sistema de ficheros\tsoi=Sistema instalado\ttam=Tamaño de la partición\n
|
|
||||||
#_______________________________________________________________________________________________________________________________
|
|
||||||
|
|
||||||
|
|
||||||
# No registrar los errores.
|
|
||||||
export DEBUG="no"
|
|
||||||
|
|
||||||
ser=$(ogGetSerialNumber)
|
|
||||||
cfg=""
|
|
||||||
disks=$(ogDiskToDev | wc -w)
|
|
||||||
for ((dsk=1; dsk<=$disks; dsk++)); do
|
|
||||||
particiones=$(ogGetPartitionsNumber $dsk)
|
|
||||||
particiones=${particiones:-0}
|
|
||||||
# Tipo de tabla de particiones: 1=MSDOS, 2=GPT
|
|
||||||
ptt=$(ogGetPartitionTableType $dsk)
|
|
||||||
case "$ptt" in
|
|
||||||
MSDOS) ptt=1 ;;
|
|
||||||
GPT) ptt=2 ;;
|
|
||||||
LVM) ptt=3 ;;
|
|
||||||
ZPOOL) ptt=4 ;;
|
|
||||||
*) ptt=0 ;;
|
|
||||||
esac
|
|
||||||
# Información de disco (partición 0)
|
|
||||||
cfg="$cfg$dsk:0:$ptt:::$(ogGetDiskSize $dsk):0;"
|
|
||||||
for ((par=1;par<=$particiones;par++)); do
|
|
||||||
# Código del identificador de tipo de partición
|
|
||||||
cod=$(ogGetPartitionId $dsk $par 2>/dev/null)
|
|
||||||
# Tipo del sistema de ficheros
|
|
||||||
fsi=$(getFsType $dsk $par 2>/dev/null)
|
|
||||||
fsi=${fsi:-"EMPTY"}
|
|
||||||
# Tamaño de la particón
|
|
||||||
tam=$(ogGetPartitionSize $dsk $par 2>/dev/null)
|
|
||||||
tam=${tam:-"0"}
|
|
||||||
# Sistema operativo instalado
|
|
||||||
case "$fsi" in
|
|
||||||
""|EMPTY|LINUX-SWAP|LINUX-LVM|ZVOL)
|
|
||||||
soi=""; uso=0 ;;
|
|
||||||
*) if [ -n "$(ogMount $dsk $par 2>/dev/null)" ]; then
|
|
||||||
soi=$(getOsVersion $dsk $par 2>/dev/null | cut -f2 -d:)
|
|
||||||
# Hacer un 2º intento para algunos casos especiales.
|
|
||||||
[ -z "$soi" ] && soi=$(getOsVersion $dsk $par 2>/dev/null | cut -f2 -d:)
|
|
||||||
# Sistema de archivos para datos (sistema operativo "DATA")
|
|
||||||
[ -z "$soi" -a "$fsi" != "EMPTY" -a "$fsi" != "CACHE" ] && soi="DATA"
|
|
||||||
# Obtener porcentaje de uso.
|
|
||||||
uso=$(df $(ogGetMountPoint $dsk $par) | awk '{getline; printf "%d",$5}')
|
|
||||||
uso=${uso:0}
|
|
||||||
else
|
|
||||||
soi=""; uso=0
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
cfg="$cfg$dsk:$par:$cod:$fsi:$soi:$tam:$uso;"
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
||||||
# Crear configuración por defecto para cliente sin disco.
|
|
||||||
[ -z "$cfg" ] && cfg="1:0:0:::0;"
|
|
||||||
|
|
||||||
# Guardar salida en fichero temporal.
|
|
||||||
cfgfile=/tmp/getconfig
|
|
||||||
echo "${ser:+$ser;}$cfg" > $cfgfile
|
|
||||||
|
|
||||||
# Crear el menú por defecto a partir del fichero generado (no dar ninguna salida).
|
|
||||||
generateMenuDefault &>/dev/null
|
|
||||||
|
|
||||||
# Componer salida formateada.
|
|
||||||
awk '{ n=split($0,sep,";");
|
|
||||||
for (i=1; i<n; i++){
|
|
||||||
c=split (sep[i],dua,":");
|
|
||||||
if (i==1 && c==1)
|
|
||||||
printf ("ser=%s\n", dua[1]);
|
|
||||||
else
|
|
||||||
printf ("disk=%s\tpar=%s\tcpt=%s\tfsi=%s\tsoi=%s\ttam=%s\tuso=%s\n",
|
|
||||||
dua[1],dua[2],dua[3],dua[4],dua[5],dua[6],dua[7]);
|
|
||||||
}
|
|
||||||
}' $cfgfile
|
|
||||||
|
|
||||||
# Borramos marcas de arranque de Windows
|
|
||||||
rm -f /mnt/*/ogboot.* /mnt/*/*/ogboot.*
|
|
||||||
|
|
||||||
# Volver a registrar los errores.
|
|
||||||
unset DEBUG
|
|
||||||
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
getIpAddress
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
initCache $1
|
|
||||||
Loading…
Reference in New Issue