diff options
author | ramon <ramongomez@us.es> | 2011-10-17 10:07:18 +0000 |
---|---|---|
committer | ramon <ramongomez@us.es> | 2011-10-17 10:07:18 +0000 |
commit | 1cd64e65e3eaa0d5cb03c5b13a6a83f90c7bd7bf (patch) | |
tree | df808c871e4467b7210febd432c976e0ccc23d81 | |
parent | e4dafd64d9c6df68d0067b8b171af4f5c8b04403 (diff) |
Versión 1.0.2: Continuar depurando el motor de clonación:
* Revisar variables locales.
* Ayudas de las funciones.
* Incluir fecha y hora en mensajes de logs.
Modifica ticket #446.
git-svn-id: https://opengnsys.es/svn/branches/version1.0@2348 a21b9725-9963-47de-94b9-378ad31fedc9
-rwxr-xr-x | client/engine/Boot.lib | 6 | ||||
-rwxr-xr-x | client/engine/Net.lib | 28 | ||||
-rwxr-xr-x | client/engine/Protocol.lib | 35 | ||||
-rwxr-xr-x | client/engine/Registry.lib | 9 | ||||
-rwxr-xr-x | client/engine/System.lib | 15 |
5 files changed, 56 insertions, 37 deletions
diff --git a/client/engine/Boot.lib b/client/engine/Boot.lib index 83e7ae74..498a02e9 100755 --- a/client/engine/Boot.lib +++ b/client/engine/Boot.lib @@ -352,7 +352,7 @@ ms-sys -s -f $PART function ogFixBootSector () { # Variables locales. -local PARTYPE +local PARTYPE DISK PART FILE # Si se solicita, mostrar ayuda. if [ "$*" == "help" ]; then @@ -380,7 +380,7 @@ ogUnmount $1 $2 || return $(ogRaiseError $OG_ERR_PARTITION; echo $?) #Preparando instruccion let DISK=$1-1 PART=$2 -FILE=/tmp/temporal +FILE=/tmp/temp$$ cat > $FILE <<EOF disk=$DISK main_part=$PART @@ -390,7 +390,7 @@ EOF spartlnx.run -cui -nm -a -f $FILE & sleep 5 ps aux > /dev/null | grep $! | grep -E "T|S" | kill -9 $! > /dev/null - +rm -f $FILE } diff --git a/client/engine/Net.lib b/client/engine/Net.lib index b10e408e..b7534e20 100755 --- a/client/engine/Net.lib +++ b/client/engine/Net.lib @@ -55,7 +55,7 @@ fi function ogGetGroupName () { if [ "$*" == "help" ]; then - ogHelp "$FUNCNAME" "$FUNCNAME" "$FUNCNAME Grupo1" + ogHelp "$FUNCNAME" "$FUNCNAME" "$FUNCNAME => Grupo1" return fi [ -n "$group" ] && echo "$group" @@ -73,6 +73,10 @@ fi function ogGetHostname () { local HOST +if [ "$*" == "help" ]; then + ogHelp "$FUNCNAME" "$FUNCNAME" "$FUNCNAME => pc1" + return +fi # Tomar nombre de la variable HOSTNAME HOST="$HOSTNAME" # Si no, tomar del DHCP, opción host-name /* (comentario para Doxygen) @@ -98,7 +102,11 @@ HOST="$HOSTNAME" #*/ ## function ogGetNetInterface () { -[ -n "$DEVICE" ] && echo $DEVICE +if [ "$*" == "help" ]; then + ogHelp "$FUNCNAME" "$FUNCNAME" "$FUNCNAME => eth0" + return +fi +[ -n "$DEVICE" ] && echo "$DEVICE" } @@ -120,6 +128,10 @@ function ogGetNetInterface () function ogGetIpAddress () { local IP +if [ "$*" == "help" ]; then + ogHelp "$FUNCNAME" "$FUNCNAME" "$FUNCNAME => 192.168.0.10" + return +fi if [ -n $IPV4ADDR ]; then IP=$IPV4ADDR else @@ -149,6 +161,10 @@ echo ${IP%%/*} # (comentario para Doxygen) */ function ogGetMacAddress () { local MAC +if [ "$*" == "help" ]; then + ogHelp "$FUNCNAME" "$FUNCNAME" "$FUNCNAME => 00:11:22:33:44:55" + return +fi # Obtener direcciones Ethernet. if [ -n "$DEVICE" ]; then MAC=$(ip -o address show up dev "$DEVICE" 2>/dev/null | awk '{sub (/.*\\/, ""); if ($1~/ether/) printf ("%s ", toupper($2));}') @@ -174,6 +190,10 @@ echo ${MAC%% *} #*/ ## function ogGetRepoIp () { +if [ "$*" == "help" ]; then + ogHelp "$FUNCNAME" "$FUNCNAME" "$FUNCNAME => 192.168.0.2" + return +fi # Obtener direcciones IP, segun el protocolo de montaje if [ -n "$OGIMG" ]; then case "$ogprotocol" in @@ -198,6 +218,10 @@ fi #*/ ## function ogGetServerIp () { +if [ "$*" == "help" ]; then + ogHelp "$FUNCNAME" "$FUNCNAME" "$FUNCNAME => 192.168.0.2" + return +fi # Obtener direcciones IP. if [ -n "$OPENGNSYS" ]; then case "$ogprotocol" in diff --git a/client/engine/Protocol.lib b/client/engine/Protocol.lib index ecc0d43b..5fe2bc74 100755 --- a/client/engine/Protocol.lib +++ b/client/engine/Protocol.lib @@ -29,14 +29,10 @@ #@date 2011/03/09 #*/ ## - - - function ogUcastSyntax () { -local PARM SESSION SESSIONPARM MODE PORTBASE PERROR -local ADDRESS +local PARM SESSION SESSIONPARM MODE PORTBASE PERROR ADDRESS local TOOL LEVEL DEVICE MBUFFER SYNTAXSERVER SYNTAXCLIENT # Si se solicita, mostrar ayuda. @@ -159,7 +155,7 @@ function ogUcastSendPartition () { # Variables locales -local PART COMMAND RETVAL +local PART COMMAND RETVAL # Si se solicita, mostrar ayuda. if [ "$*" == "help" ]; then @@ -175,7 +171,6 @@ PART=$(ogDiskToDev "$1" "$2") || return $? #ogIsLocked $1 $2 || ogRaiseError $OG_ERR_LOCKED "$1,$2" || return $? ogUnmount $1 $2 - #generamos la instrucción a ejecutar. COMMAND=`ogUcastSyntax SENDPARTITION "$3" $PART $4 $5` RETVAL=$? @@ -190,6 +185,7 @@ fi } + #/** # ogUcastReceiverPartition #@brief Función para recibir directamente en la partición el contenido de un fichero imagen remoto enviado por UNICAST. @@ -208,7 +204,7 @@ fi function ogUcastReceiverPartition () { # Variables locales -local PART COMMAND RETVAL +local PART COMMAND RETVAL # Si se solicita, mostrar ayuda. if [ "$*" == "help" ]; then @@ -224,7 +220,6 @@ PART=$(ogDiskToDev "$1" "$2") || return $? #ogIsLocked $1 $2 || ogRaiseError $OG_ERR_LOCKED "$1,$2" || return $? ogUnmount $1 $2 - #generamos la instrucción a ejecutar. COMMAND=`ogUcastSyntax RECEIVERPARTITION "$3" $PART $4 $5` RETVAL=$? @@ -260,7 +255,7 @@ fi function ogUcastSendFile () { # Variables locales. -local ARGS SOURCE TARGET COMMAND DEVICE RETVAL LOGFILE +local ARG ARGS SOURCE TARGET COMMAND DEVICE RETVAL LOGFILE #ARGS usado para controlar ubicación de la sesion multicast @@ -301,7 +296,6 @@ esac ogGetPath $SOURCE &> /dev/null || ogRaiseError $OG_ERR_NOTFOUND " device or file $DEVICE not found" || return $? - SESSION=${!ARG} #generamos la instrucción a ejecutar. @@ -340,7 +334,6 @@ fi #*/ ## # - function ogMcastSyntax () { @@ -478,7 +471,7 @@ esac function ogMcastSendFile () { # Variables locales. -local ARGS SOURCE TARGET COMMAND DEVICE RETVAL LOGFILE +local ARGS ARG SOURCE TARGET COMMAND DEVICE RETVAL LOGFILE #LOGFILE="/tmp/mcast.log" @@ -525,7 +518,6 @@ ogGetPath $SOURCE &> /dev/null || ogRaiseError $OG_ERR_NOTFOUND " device or file SESSION=${!ARG} - #generamos la instrucción a ejecutar. COMMAND=`ogMcastSyntax "SENDFILE" "$SESSION" "$SOURCE"` RETVAL=$? @@ -611,6 +603,7 @@ else fi } + #/** # ogMcastSendPartition #@brief Función para enviar el contenido de una partición a multiples particiones remotas. @@ -633,7 +626,7 @@ function ogMcastSendPartition () { # Variables locales -local PART COMMAND RETVAL +local PART COMMAND RETVAL # Si se solicita, mostrar ayuda. if [ "$*" == "help" ]; then @@ -683,7 +676,7 @@ fi function ogMcastReceiverPartition () { # Variables locales -local PART COMMAND RETVAL +local PART COMMAND RETVAL # Si se solicita, mostrar ayuda. if [ "$*" == "help" ]; then @@ -926,7 +919,7 @@ esac # Error si no existe la imagen -[ $SOURCE ] || ogRaiseError $OG_ERR_NOTFOUND || return $? +[ $SOURCE ] || ogRaiseError $OG_ERR_NOTFOUND || return $? [ -r $SOURCE.torrent ] && mv "$SOURCE.torrent" "$SOURCE.torrent.ant" && echo "Esperamos que se refresque el servidor" && sleep 20 @@ -957,7 +950,7 @@ function ogUpdateCacheIsNecesary () { # Variables locales. -local ERROR SOURCE CACHE FILESOURCE MD5SOURCE FILETARGET MD5TARGET +local ERROR SOURCE CACHE FILESOURCE MD5SOURCE FILETARGET MD5TARGET ERROR=0 # Si se solicita, mostrar ayuda. @@ -986,8 +979,8 @@ FILETARGET=`ogGetPath CACHE $2` if [ -z $FILETARGET ] then # borramos el fichero bf del torrent, en el caso de que se hubiese quedado de algun proceso fallido - ogDeleteFile CACHE /$2.torrent.bf &> /dev/null - ogDeleteFile CACHE /$2.sum &> /dev/null + ogDeleteFile CACHE "/$2.torrent.bf" &> /dev/null + ogDeleteFile CACHE "/$2.sum" &> /dev/null echo "TRUE=0, es necesario actualizar. Paso 1, la cache no contiene esa imagen " return 0 fi @@ -1029,7 +1022,7 @@ then return 1 else echo "TRUE=0, Si es necesario actualizar. paso 5.b la imagen en cache es distinta, borramos la imagen anterior y devolvemos 0 para confirmar la actualizacion" - rm $FILETARGET + rm -f $FILETARGET return 0 fi diff --git a/client/engine/Registry.lib b/client/engine/Registry.lib index 9ca6a0e4..6423f43a 100755 --- a/client/engine/Registry.lib +++ b/client/engine/Registry.lib @@ -60,8 +60,8 @@ EOT #@return (nada) #@exception OG_ERR_FORMAT Formato incorrecto. #@exception OG_ERR_NOTFOUND Fichero de registro no encontrado. -#@note hive = { default, sam, security, software, system, components } -#@note valuetype = { string, binary, dword }, por defecto: string +#@note hive = { DEFAULT, SAM, SECURITY, SOFTWARE, SYSTEM, COMPONENTS } +#@note valuetype = { STRING, BINARY, DWORD }, por defecto: STRING #@warning Requisitos: chntpw #@warning El sistema de archivos de Windows debe estar montada previamente. #@version 1.0.1 - Nueva función @@ -146,6 +146,7 @@ y EOT } + #/** # ogDeleteRegistryValue path_mountpoint str_hive str_valuename #@brief Elimina un valor del registro de Windows. @@ -198,7 +199,7 @@ EOT #@return str_path - camino del fichero de registro #@exception OG_ERR_FORMAT Formato incorrecto. #@exception OG_ERR_NOTFOUND Fichero de registro no encontrado. -#@note hive = { default, sam, security, software, system, components } +#@note hive = { DEFAULT, SAM, SECURITY, SOFTWARE, SYSTEM, COMPONENTS } #@warning El sistema de archivos de Windows debe estar montada previamente. #@version 1.0.1 - Nueva función #@author Ramon Gomez, ETSII Universidad de Sevilla @@ -212,7 +213,7 @@ local FILE FILENT FILEXP # Si se solicita, mostrar ayuda. if [ "$*" == "help" ]; then ogHelp "$FUNCNAME" "$FUNCNAME path_mountpoint str_hive" - "$FUNCNAME /mnt/sda1 SOFTWARE" + "$FUNCNAME /mnt/sda1 SOFTWARE => /mnt/sda1/WINDOWS/System32/config/SOFTWARE" return fi # Error si no se reciben 2 parámetros. diff --git a/client/engine/System.lib b/client/engine/System.lib index 020692d5..4078ebef 100755 --- a/client/engine/System.lib +++ b/client/engine/System.lib @@ -33,8 +33,7 @@ case "$1" in error) LOGLEVEL=$1; shift ;; *) ;; esac -# Pendiente en cliente Initrd. -#DATETIME=$(date +"%F %T") +DATETIME=$(date +"%F %T") if [ -n "$LOGLEVEL" ]; then logger -s -t "OpenGnSys $LOGLEVEL" $LOGFILE "$DATETIME $*" @@ -91,7 +90,7 @@ case "$CODE" in $OG_ERR_MCASTSENDPARTITION) MSG="$MSG_ERR_MCASTSENDPARTITION \"$2\"" ;; $OG_ERR_MCASTRECEIVERPARTITION) MSG="$MSG_ERR_MCASTRECEIVERPARTITION \"$2\"" ;; $OG_ERR_PROTOCOLJOINMASTER) MSG="$MSG_ERR_PROTOCOLJOINMASTER \"$2\"" ;; - *) MSG="$MSG_ERR_GENERIC"; CODE=$OG_ERR_GENERIC ;; + *) MSG="$MSG_ERR_GENERIC"; CODE=$OG_ERR_GENERIC ;; esac # Mostrar mensaje de error y salir con el código indicado. @@ -177,19 +176,20 @@ while [ $# -gt 0 ]; do done } -ogCheckProgram () + +function ogCheckProgram () { # Si se solicita, mostrar ayuda. if [ "$*" == "help" ]; then - ogHelp "$FUNCNAME \"str_program1 program2 programN\" " \ - "$FUNCNAME \"partimage partclone mbuffer\" " + ogHelp "$FUNCNAME \"str_program ...\"" \ + "$FUNCNAME \"partimage partclone mbuffer\"" return fi # Error si no se recibe 1 parámetro. [ $# == 1 ] || ogRaiseError $OG_ERR_FORMAT || return $? -local PERROR PLOG +local PERROR PLOG i PERROR=0 PLOG=" " for i in `echo $1` @@ -207,3 +207,4 @@ else return 0 fi } + |