summaryrefslogtreecommitdiffstats
path: root/client/shared/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'client/shared/scripts')
l---------[-rwxr-xr-x]client/shared/scripts/bootLinux36
-rwxr-xr-xclient/shared/scripts/bootOs12
l---------[-rwxr-xr-x]client/shared/scripts/bootWindows31
-rwxr-xr-xclient/shared/scripts/cloneRemoteFromMaster4
-rwxr-xr-xclient/shared/scripts/configureOs20
-rwxr-xr-xclient/shared/scripts/createImage47
-rwxr-xr-xclient/shared/scripts/deployImage37
-rwxr-xr-xclient/shared/scripts/listPartitions3
-rwxr-xr-xclient/shared/scripts/restoreImage12
-rwxr-xr-xclient/shared/scripts/runAplicationX.sh8
-rwxr-xr-xclient/shared/scripts/runhttplog.sh30
-rwxr-xr-xclient/shared/scripts/updateBootCache55
-rwxr-xr-xclient/shared/scripts/updateCache78
13 files changed, 238 insertions, 135 deletions
diff --git a/client/shared/scripts/bootLinux b/client/shared/scripts/bootLinux
index e20b9489..d19be900 100755..120000
--- a/client/shared/scripts/bootLinux
+++ b/client/shared/scripts/bootLinux
@@ -1,35 +1 @@
-#!/bin/bash
-# Scirpt de ejemplo para iniciar Linux desde partición de arranque.
-# (puede usarse como base para el programa de arranque usado por OpenGNSys Admin).
-
-PROG="$(basename $0)"
-if [ $# -ne 2 ]; then
- ogRaiseError $OG_ERR_FORMAT "Formato: $PROG ndisco nparticion"
- exit $?
-fi
-
-echo "[0] Inicio del proceso de arranque."
-PART=$(ogDiskToDev "$1" "$2") || exit $?
-
-echo "[10] Desmontar todos los sistemas de archivos."
-sync
-for (( i=1; i <= $(ogDiskToDev | wc -w); i++ )); do
- ogUnmountAll $i 2>/dev/null
-done
-ETC=$(ogGetPath $1 $2 /etc)
-if [ -n "$ETC" ]; then
- echo "[30] Asignar nombre Linux \"$NAME\"."
- NAME=$(ogGetHostname)
- NAME=${NAME:-"pc"}
- echo "$NAME" >$ETC/hostname 2>/dev/null
- echo "[50] Actaualizar fstab con particion raiz \"$PART\"."
- awk -v P="$PART " '{ if ($2=="/") {sub(/^.*$/, P, $1)}
- print } ' $ETC/fstab >/tmp/fstab
- mv /tmp/fstab $ETC/fstab
-fi
-echo "[70] Desmontar cache local."
-ogUnmountCache
-
-echo "[90] Arrancar sistema operativo."
-ogBoot $1 $2
-
+bootOs \ No newline at end of file
diff --git a/client/shared/scripts/bootOs b/client/shared/scripts/bootOs
index 71a9fe73..78d779be 100755
--- a/client/shared/scripts/bootOs
+++ b/client/shared/scripts/bootOs
@@ -10,9 +10,16 @@ fi
echo "[0] Inicio del proceso de arranque."
PART=$(ogDiskToDev "$1" "$2") || exit $?
-NAME=$(ogGetHostname)
+NAME="$(ogGetHostname)"
NAME=${NAME:-"pc"}
OSTYPE=$(ogGetOsType $1 $2)
+# Borrar marcas de arrranque de todos los Windows instalados en el disco.
+if [ "$OSTYPE" == "Windows" ]; then
+ for (( i=1; i<=$(ogGetPartitionsNumber $1); i++ )); do
+ [ "$(ogGetOsType $1 $i)" == "Windows" ] && ogMount $1 $i &>/dev/null
+ done
+ rm -f /mnt/*/ogboot.*
+fi
echo "[10] Desmontar todos los sistemas de archivos."
sync
@@ -21,7 +28,8 @@ for (( i=1; i <= $(ogDiskToDev | wc -w); i++ )); do
done
case "$OSTYPE" in
Windows)
- echo "[30] Activar particion de Windows $PART."
+ echo "[30] Mostrar y activar particion de Windows $PART."
+ [ $(ogGetPartitionType $1 $2) == "HNTFS" ] && ogUnhidePartition $1 $2
ogSetPartitionActive $1 $2
echo "[50] Asignar nombre Windows \"$NAME\" y usuario por defecto."
ogSetWindowsName $1 $2 "$NAME"
diff --git a/client/shared/scripts/bootWindows b/client/shared/scripts/bootWindows
index e92e484a..d19be900 100755..120000
--- a/client/shared/scripts/bootWindows
+++ b/client/shared/scripts/bootWindows
@@ -1,30 +1 @@
-#!/bin/bash
-# Scirpt de ejemplo para iniciar Windows con partición de arranque.
-# (puede usarse como base para el programa de arranque usado por OpenGNSys Admin).
-
-PROG="$(basename $0)"
-if [ $# -ne 2 ]; then
- ogRaiseError $OG_ERR_FORMAT "Formato: $PROG ndisco nparticion"
- exit $?
-fi
-
-echo "[0] Inicio del proceso de arranque."
-PART=$(ogDiskToDev "$1" "$2") || exit $?
-
-echo "[10] Desmontar todos los sistemas de archivos."
-sync
-for (( i=1; i <= $(ogDiskToDev | wc -w); i++ )); do
- ogUnmountAll $i 2>/dev/null
-done
-echo "[30] Activar particion de Windows $PART."
-ogSetPartitionActive $1 $2
-echo "[50] Asignar nombre Windows \"$NAME\"."
-NAME=$(ogGetHostname)
-NAME=${NAME:-"pc"}
-ogSetWindowsName $1 $2 "$NAME"
-echo "[70] Desmontar cache local."
-ogUnmountCache
-
-echo "[90] Arrancar sistema operativo."
-ogBoot $1 $2
-
+bootOs \ No newline at end of file
diff --git a/client/shared/scripts/cloneRemoteFromMaster b/client/shared/scripts/cloneRemoteFromMaster
index 6516b587..cc0a936b 100755
--- a/client/shared/scripts/cloneRemoteFromMaster
+++ b/client/shared/scripts/cloneRemoteFromMaster
@@ -247,7 +247,9 @@ case $MASTERIP in
SIZEIMAGE=$(echo $INFOEXTRA | awk '{print $4}')
echo -n "[26] $INFOEXTRA = herramienta= $TOOLCLONE compresor= $COMPRESOR size= $SIZEIMAGE "
ogMount $DISKTARGET $PARTTARGET || ogFormat $DISKTARGET $PARTTARGET
- SIZEPARTTARGET=$(parted `ogDiskToDev $DISKTARGET $PARTTARGET` unit kB print | awk '{y=x; x=$4};END{print y}' | tr -d kB)
+ #SIZEPARTTARGET=$(parted `ogDiskToDev $DISKTARGET $PARTTARGET` unit kB print | awk '{y=x; x=$4};END{print y}' | tr -d kB)
+ SIZEPARTTARGET=$(parted `ogDiskToDev $DISKTARGET $PARTTARGET` unit kB print | grep Disk | awk -F" " '{print $3}' | tr -d kB);
+
echo "[29] comprobando que el tamaño de la imagen $SIZEIMAGE es menor que el de la particion destino $SIZEPARTTARGET"
# comprobamos que el tamaño de a imagen es menor que la del cliente.
if [ "$SIZEIMAGE" -lt "$SIZEPARTTARGET" ]
diff --git a/client/shared/scripts/configureOs b/client/shared/scripts/configureOs
index 64249c9b..c9660d4d 100755
--- a/client/shared/scripts/configureOs
+++ b/client/shared/scripts/configureOs
@@ -15,6 +15,9 @@
#@version 1.0.1 - Configura el sector de la particion y el gestor de windows para iniciarse desde cualquier particion.
#@author Antonio J. Doblas Viso. Universidad de Malaga.
#@date 2011-05-20
+#@version 1.0.2 - Configura el sector de la particion y el gestor de linux para iniciarse desde cualquier particion.
+#@author Antonio J. Doblas Viso. Universidad de Malaga.
+#@date 2011-11-22
@@ -32,15 +35,20 @@ FLAGACTIVE=$(ogGetPartitionActive $1)
# Cambiar nombre en sistemas Windows y quitar usuario de acceso por defecto.
if [ "$(ogGetOsType $1 $2)" = "Windows" ]; then
+ # Cambiar nombre en sistemas Windows.
HOST=$(ogGetHostname)
HOST=${HOST:-"pc"}
- echo " Cambiar nombre Windows a \"$HOST\" "
ogSetWindowsName $1 $2 "$HOST"
- #ogSetWinlogonUser $1 $2 " " # Descomentar para cambiar usuario de inicio.
- # Configurar el boot sector de la particion windows.
- ogFixBootSector $1 $2
- # Configura el gestor de arranque de windows xp vista seven
+ # Descomentar la siguiente línea para cambiar usuario de inicio.
+ #ogSetWinlogonUser $1 $2 " "
+ # Configurar el boot sector de la partición Windows.
+ ogFixBootSector $1 $2
+ # Configurar el gestor de arranque de Windows XP/Vista/7.
ogWindowsBootParameters $1 $2
- # Registra en windows que la particion indicada es su nueva unidad c:\
+ # Registrar en Windows que la partición indicada es su nueva unidad C:\
ogWindowsRegisterPartition $1 $2 C $1 $2
+fi
+
+if [ "$(ogGetOsType $1 $2)" = "Linux" ]; then
+ ogGrubInstallPartition $1 $2
fi \ No newline at end of file
diff --git a/client/shared/scripts/createImage b/client/shared/scripts/createImage
index 3643d1af..3bba9d36 100755
--- a/client/shared/scripts/createImage
+++ b/client/shared/scripts/createImage
@@ -23,10 +23,12 @@
#@version 1.0 - control de errores para el ogAdmServer
#@author
#@date 2011-04-10
-#@version 1.0.1 - Fin de control de errores para el ogAdmServer
-#@author
+#@version 1.0.1 - Control de espacio requerido
+#@author Antonio J.Doblas Viso
#@date 2011-05-10
-
+ #@version 1.0.2 - Separacion de log
+#@author Antonio J.Doblas Viso
+#@date 2011-08-4
#*/ ##
# Test 1. crear una imagen en un REPO sin espacio libre.
@@ -36,6 +38,12 @@
# test 5. intentar crear una imagen, en la que no se puede reducir el FS.
TIME1=$SECONDS
+OGLOGSESSION="/tmp/session.log"
+OGLOGCOMMAND="/tmp/command.log"
+
+
+
+
PROG="$(basename $0)"
if [ $# -ne 4 ]; then
ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG ndisco nparticion REPO|CACHE imagen"
@@ -47,29 +55,38 @@ IMGPROG="partclone"
IMGCOMP="lzop"
IMGEXT="img"
+echo "[1] Iniciando $0 $*" | tee -a $OGLOGSESSION $OGLOGFILE
+
+
# Si el repositorio es CACHE comprobamos que exista
if [ "$3" == "CACHE" -o "$3" == "cache" ]; then
! ogFindCache >/dev/null && exit $(ogRaiseError $OG_ERR_NOTCACHE "CACHE "; echo $?)
fi
+echo " " > $OGLOGCOMMAND
+
# Obtener información de los parámetros de entrada.
PART=$(ogDiskToDev "$1" "$2" 2>/dev/null) || exit $(ogRaiseError $OG_ERR_PARTITION "$1 $2"; echo $?)
+echo " " > $OGLOGCOMMAND
+
#Comprobamos acceso de escritura.
DIRTEMP=$(date +%Y%m%d-%H%M%S)
ogMakeDir $3 /$4$DIRTEMP 2>/dev/null || exit $(ogRaiseError $OG_ERR_NOTWRITE "$3"; echo $?) && ogDeleteTree $3 /$4$DIRTEMP
+echo " " > $OGLOGCOMMAND
+
IMGDIR=$(ogGetParentPath "$3" "/$4")
# Si no existe, crear subdirectorio de la imagen.
if [ $? != 0 ]; then
- echo "[5] Crear subdirectorio de la imagen \"$3 $(dirname "$4")."
+ echo "[5] Crear subdirectorio de la imagen \"$3 $(dirname "$4")." | tee -a $OGLOGSESSION $OGLOGFILE
ogMakeDir "$3" $(dirname "/$4") || exit $(ogRaiseError $OG_ERR_NOTWRITE "$3 /$4"; echo $?)
IMGDIR=$(ogGetParentPath "$3" "/$4") || exit $(ogRaiseError $OG_ERR_NOTWRITE "$3 /$4"; echo $?)
fi
IMGFILE=$IMGDIR/$(basename "/$4").$IMGEXT
# Renombrar el fichero de imagen si ya existe.
if [ -f "$IMGFILE" ]; then
- echo "[10] Renombrar \"$IMGFILE\" por \"$IMGFILE.ant\"."
+ echo "[10] Renombrar \"$IMGFILE\" por \"$IMGFILE.ant\"." | tee -a $OGLOGSESSION $OGLOGFILE
mv "$IMGFILE" "$IMGFILE.ant"
mv "$IMGFILE.torrent" "$IMGFILE.torrent.ant" 2>/dev/null
fi
@@ -90,9 +107,11 @@ else
exit $?
fi
+echo " " > $OGLOGCOMMAND
+
# Mostrar información.
-echo "[15] $PROG: Origen=$PART, Destino=$IMGFILE"
-echo "[16] $PROG: TamañoRequerido=$SIZEREQUIRED EspacioDisponible=$SIZEFREE"
+echo "[15] $PROG: Origen=$PART, Destino=$IMGFILE" | tee -a $OGLOGSESSION $OGLOGFILE
+echo "[16] $PROG: TamañoRequerido=$SIZEREQUIRED EspacioDisponible=$SIZEFREE" | tee -a $OGLOGSESSION $OGLOGFILE
[ "$SIZEREQUIRED" -gt "$SIZEFREE" ] && exit $(ogRaiseError $OG_ERR_CACHESIZE "$3" || echo $?)
@@ -100,21 +119,25 @@ echo "[16] $PROG: TamañoRequerido=$SIZEREQUIRED EspacioDisponible=$SIZEFREE"
# TODO: que hacer si la cache no tiene espacio libre.
# Comprobar consistencia del sistema de archivos.
-echo "[20] Comprobar sistema de archivos."
+echo "[20] Comprobar sistema de archivos." | tee -a $OGLOGSESSION $OGLOGFILE
ogUnmount $1 $2
ogCheckFs $1 $2 || exit $(ogRaiseError $OG_ERR_PARTITION "ogCheckFs $1 $2" && echo $?)
-echo "[30]: Reducir sistema de archivos."
+echo " " > $OGLOGCOMMAND
+
+echo "[30]: Reducir sistema de archivos." | tee -a $OGLOGSESSION $OGLOGFILE
ogReduceFs $1 $2 || exit $(ogRaiseError $OG_ERR_REDUCEFS "$1 $2"; echo $?)
+echo " " > $OGLOGCOMMAND
+
# Crear la imagen.
-echo "[40] Crear imagen con: ogCreateImage $1 $2 $3 $4 $IMGPROG $IMGCOMP"
+echo "[40] Crear imagen con: ogCreateImage $1 $2 $3 $4 $IMGPROG $IMGCOMP" | tee -a $OGLOGSESSION $OGLOGFILE
ogCreateImage $1 "$2" $3 $4 "$IMGPROG" "$IMGCOMP" || exit $(ogRaiseError $OG_ERR_IMAGE "ogCreteImage"; echo $?)
-echo "[90] Extender sistema de archivos."
+echo "[90] Extender sistema de archivos." | tee -a $OGLOGSESSION $OGLOGFILE
ogExtendFs $1 $2 || exit $(ogRaiseError $OG_ERR_EXTENDFS "$1 $2"; echo $?)
TIME=$[SECONDS-TIME1]
-echo "[100] Duracion de la operacion $[TIME/60]m $[TIME%60]s"
+echo "[100] Duracion de la operacion $[TIME/60]m $[TIME%60]s" | tee -a $OGLOGSESSION $OGLOGFILE
diff --git a/client/shared/scripts/deployImage b/client/shared/scripts/deployImage
index 16a403cc..e5a2bec3 100755
--- a/client/shared/scripts/deployImage
+++ b/client/shared/scripts/deployImage
@@ -1,6 +1,31 @@
#!/bin/bash
+#/**
+# deployImage
+#@brief Actualiza la cache del cliente con una imagen, y la restaura en la partición.
+#@param 1
+#@param ejemplo:
+#@return
+#@exception OG_ERR_FORMAT formato incorrecto.
+#@note
+#@todo:
+#@version 0.9.1 - integracion EAC
+#@author Antonio J. Doblas Viso. Universidad de Malaga.
+#@date 2008/03/17
+#@version 0.9.2 - integracion OpenGnsys
+#@author Antonio J. Doblas Viso. Universidad de Malaga.
+#@date 2010/07/27
+#@version 1.0.2 - Separacion de log
+#@author Antonio J. Doblas Viso. Universidad de Malaga.
+#@date 2010/08/04
+#*/ ##
+
TIME1=$SECONDS
+
+OGLOGSESSION="/tmp/session.log"
+OGLOGCOMMAND="/tmp/command.log"
+
+
PROG="$(basename $0)"
if [ $# -lt 4 ]; then
ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG REPO imagen ndisco nparticion [ UNICAST|MULTICAST|TORRENT ] [opciones protocolo]"
@@ -8,20 +33,20 @@ if [ $# -lt 4 ]; then
fi
#controlar param1 REPO
-echo "Realizando un updateCache REPO $2.img $5 $6"
-updateCache REPO $2.img $5 $6
+echo "[1] Realizando un updateCache REPO $2.img $5 $6" | tee -a $OGLOGSESSION $OGLOGFILE
+updateCache REPO $2.img $5 $6 | tee -a $OGLOGCOMMAND
RETVAL=$?
if [ "$RETVAL" != "0" ]
then
- echo "fin del updateCache REPO $2.img $5 $6 con error $RETVAL"
+ echo "[49] Fin del updateCache REPO $2.img $5 $6 con error $RETVAL" | tee -a $OGLOGSESSION $OGLOGFILE
# RC=15 No hay cache
# RC=16 no hay espacio sufiente
exit $RETVAL
else
- echo "iniciando un ogRestore CACHE desde deployImage"
- ogRestoreImage CACHE /$2 $3 $4
+ echo "[50] Iniciando un ogRestore CACHE desde deployImage" | tee -a $OGLOGSESSION $OGLOGFILE
+ ogRestoreImage CACHE /$2 $3 $4 &>> $OGLOGCOMMAND
RETVAL=$?
- [ "$RETVAL" == "0" ] && configureOs $3 $4
+ [ "$RETVAL" == "0" ] && configureOs $3 $4 | tee -a $OGLOGCOMMAND
exit $RETVAL
fi \ No newline at end of file
diff --git a/client/shared/scripts/listPartitions b/client/shared/scripts/listPartitions
new file mode 100755
index 00000000..6f9c318f
--- /dev/null
+++ b/client/shared/scripts/listPartitions
@@ -0,0 +1,3 @@
+#!/bin/bash
+ogListPartitions "$@" | sed 's/\(EMPTY:0 \)*$//'
+
diff --git a/client/shared/scripts/restoreImage b/client/shared/scripts/restoreImage
index a01f1a49..f08c0415 100755
--- a/client/shared/scripts/restoreImage
+++ b/client/shared/scripts/restoreImage
@@ -76,14 +76,10 @@ ogRestoreImage "$@" || exit $?
# Restaurar tamaño.
echo "[80] Extender sistema de archivos."
ogExtendFs $3 $4
-# Cambiar nombre en sistemas Windows y quitar usuario de acceso por defecto.
-if [ "$(ogGetOsType $3 $4)" = "Windows" ]; then
- HOST=$(ogGetHostname)
- HOST=${HOST:-"pc"}
- echo "[90] Cambiar nombre Windows a \"$HOST\" y usuario de acceso."
- ogSetWindowsName $3 $4 "$HOST"
- #ogSetWinlogonUser $3 $4 " " # Descomentar para cambiar usuario de inicio.
-fi
+# Llamar al script de post-configuración del sistema operativo.
+echo "[90] Post-configuracion de aranque del sistema."
+configureOs $3 $4
+
TIME=$[SECONDS-TIME1]
echo "[100] Duracion de la operacion $[TIME/60]m $[TIME%60]s"
diff --git a/client/shared/scripts/runAplicationX.sh b/client/shared/scripts/runAplicationX.sh
new file mode 100755
index 00000000..85f96814
--- /dev/null
+++ b/client/shared/scripts/runAplicationX.sh
@@ -0,0 +1,8 @@
+#/bin/bash
+/usr/X11R6/bin/Xvesa :0 -ac -shadow -screen 1024x768x24 -br -mouse /dev/input/mice &
+/bin/sleep 0.1
+export DISPLAY=:0
+#/usr/bin/lxde-logout
+#/usr/bin/openbox
+/usr/bin/roxterm
+#/usr/sbin/gparted
diff --git a/client/shared/scripts/runhttplog.sh b/client/shared/scripts/runhttplog.sh
new file mode 100755
index 00000000..04d3e530
--- /dev/null
+++ b/client/shared/scripts/runhttplog.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+echo "export OGLOGCOMMAND=/tmp/command.log" >> /etc/profile.d/loadenviron.sh
+echo "export OGLOGSESSION=/tmp/session.log" >> /etc/profile.d/loadenviron.sh
+ export OGLOGCOMMAND=/tmp/command.log
+ export OGLOGSESSION=/tmp/session.log
+
+#httd-log-status
+cp /etc/lighttpd/lighttpd.conf /etc/lighttpd/lighttpd.conf.back
+cp /opt/opengnsys/lib/httpd/lighttpd.conf /etc/lighttpd/
+cp /etc/lighttpd/conf-enabled/10-cgi.conf /etc/lighttpd/conf-enabled/10-cgi.conf.back
+cp /opt/opengnsys/lib/httpd/10-cgi.conf /etc/lighttpd/conf-enabled/
+/etc/init.d/lighttpd start
+chmod 755 /opt
+cp /opt/opengnsys/lib/httpd/* /usr/lib/cgi-bin
+#TODO:
+dstat -dn 10 > /tmp/bandwidth &
+#Se pasan al loadenviro para su uso en ssh
+#export OGLOGSESSION=/tmp/session.log
+#export OGLOGCOMMAND=/tmp/command.log
+touch $OGLOGCOMMAND
+touch $OGLOGSESSION
+touch ${OGLOGCOMMAND}.tmp
+chmod 777 $OGLOGCOMMAND
+chmod 777 $OGLOGSESSION
+chmod 777 ${OGLOGCOMMAND}.tmp
+touch /tmp/menu.tmp
+chmod 777 /tmp/menu.tmp
+echo "WAITING" >> $OGLOGSESSION
+# http-log-status \ No newline at end of file
diff --git a/client/shared/scripts/updateBootCache b/client/shared/scripts/updateBootCache
index af2267a2..f3edae7c 100755
--- a/client/shared/scripts/updateBootCache
+++ b/client/shared/scripts/updateBootCache
@@ -1,7 +1,54 @@
#!/bin/bash
-OGBTFTP="/opt/og2fs/tftpboot/ogclient/"
+
+#/**
+# updateBootCache
+#@brief acelerador arranque pxe. incorpora a la cache el initrd y el kernel.
+#@param 1
+#@param ejemplo:
+#@return
+#@exception OG_ERR_FORMAT formato incorrecto.
+#@note
+#@todo:
+#@version 1.0.1 - requiere el gestor de arranque grub2dos
+#@author Antonio J. Doblas Viso. Universidad de Malaga.
+#@date 2010/07/27
+#*/ ##
+
+
+
+OGBTFTP="/opt/oglive/tftpboot/ogclient"
ogMountCache || exit 1
-echo $OGCAC
+
[ -d $OGCAC/boot ] || mkdir -p $OGCAC/boot
-[ -f ${OGCAC}/boot/ogvmlinuz ] || cp ${OGBTFTP}ogvmlinuz ${OGCAC}/boot/ogvmlinuz
-[ -f ${OGCAC}/boot/oginitrd.img ] || cp ${OGBTFTP}oginitrd.img ${OGCAC}/boot/oginitrd.img \ No newline at end of file
+
+ # comparamos los del server
+ SERVERVMLINUZ=`cat ${OGBTFTP}/ogvmlinuz.sum`
+ SERVERINITRD=`cat ${OGBTFTP}/oginitrd.img.sum`
+
+ #comparamos los de la cache
+ CACHEVMLINUZ=`cat ${OGCAC}/boot/ogvmlinuz.sum`
+ CACHEINITRD=`cat ${OGCAC}/cache/boot/oginitrd.img.sum`
+
+ echo "MD5 on SERVER: $SERVERVMLINUZ $SERVERINITRD"
+ echo "MD5 on CACHE: $CACHEVMLINUZ $CACHEINITRD"
+
+
+ if [ "$CACHEVMLINUZ" != "$SERVERVMLINUZ" ]
+ then
+ echo "ogvmlinuz updating"
+ cp ${OGBTFTP}ogvmlinuz ${OGCAC}/boot/ogvmlinuz
+ cp ${OGBTFTP}ogvmlinuz.sum ${OGCAC}/boot/ogvmlinuz.sum
+ DOREBOOT=true
+ fi
+ if [ "$CACHEINITRD" != "$SERVERINITRD" ]
+ then
+ echo "oginitrd updating"
+ cp ${OGBTFTP}oginitrd.img ${OGCAC}/boot/oginitrd.img
+ cp ${OGBTFTP}oginitrd.img.sum ${OGCAC}/boot/oginitrd.img.sum
+ DOREBOOT=true
+ fi
+
+echo $DOREBOOT
+# [ "$DOREBOOT" == "true" ] && busybox reboot -f
+
+
diff --git a/client/shared/scripts/updateCache b/client/shared/scripts/updateCache
index bebb1153..2b7f2c3f 100755
--- a/client/shared/scripts/updateCache
+++ b/client/shared/scripts/updateCache
@@ -1,17 +1,29 @@
#!/bin/bash
-# Scirpt para la actualizacion de datos en la cache.
-# Versión: 0.9.1, 2008/03/17, - integracion eac
-# Versión: 0.9.2, 2010/07/27, - integracion opengnsys
-
-
-
-#1 REPO
-#2 nombre del fichero con su extension, tipo /imagen1.img o /ubuntu.iso
-#3 Protocolo TORRENT | MULTICAST | UNICAST
-#4 opciones protocolo
-#5 opciones de update cache
+#/**
+# updateCache
+#@brief Actualiza la cache del cliente con imagen o fichero iso.
+#@param 1 REPO Origen del fichero. -accesible por nfs-samba-
+#@param 2 str_fichero nombre del fichero a actualizar.
+#@param 3 str_protoco. TORRENT | MULTICAST | UNICAST.
+#@param 4 str_opcionesprotocolo
+#@param 4 str_opcionesupdatecache
+#@ejemplo: oneRemoteFromMaster 172.17.36.11 CACHE /imagen1 9000:full-duplex:239.194.17.36:70M:50:100 1 1 partclone lzop
+#@return
+#@exception OG_ERR_FORMAT formato incorrecto.
+#@note
+#@todo:
+#@version 0.9.1 - integracion EAC
+#@author Antonio J. Doblas Viso. Universidad de Malaga.
+#@date 2008/03/17
+#@version 0.9.2 - integracion OpenGnsys
+#@author Antonio J. Doblas Viso. Universidad de Malaga.
+#@date 2010/07/27
+#@version 1.0.1 - Control de espacio requerido
+#@author Antonio J.Doblas Viso
+#@date 2011-05-10
+#*/ ##
PROG="$(basename $0)"
if [ $# -lt 3 ]; then
@@ -19,9 +31,9 @@ if [ $# -lt 3 ]; then
exit $?
fi
-REPOSITORIO=$1
-PROTOCOLO=$3
-OPTPROTOCOLO=$4
+REPOSITORIO="$1"
+PROTOCOLO="$3"
+OPTPROTOCOLO="$4"
REPOIP=$(ogGetRepoIp)
echo $REPOSITORIO $REPOIP $PROTOCOLO $OPTPROTOCOLO
# Si el repositorio local CACHE no existe salimos.
@@ -39,7 +51,7 @@ ogUpdateCacheIsNecesary $1 $2; RETVAL=$?
CACHESIZEFREE=$(ogGetFreeSize `ogFindCache`)
-FILESIZE=$(ls -sk $(ogGetPath $1 $2) | cut -f1 -d" ")
+FILESIZE=$(ls -sk $(ogGetPath $REPOSITORIO "$2") | cut -f1 -d" ")
if [ "$FILESIZE" -ge "$CACHESIZEFREE" ]
then
@@ -48,32 +60,35 @@ then
exit $?
fi
-ogUpdateCacheIsNecesary $1 $2; RETVAL=$?
+ogUpdateCacheIsNecesary $REPOSITORIO "$2"; RETVAL=$?
# si RETVAL=0 => actualizamos si RETVAL=1 no actaulizasmo-exit 0 || si RETVAL>2 exit 1
[ "$RETVAL" == "1" ] && exit 0
[ "$RETVAL" -gt "1" ] && exit 1
-ogMountCache
+ogMountCache >/dev/null
## Si no existe, crear subdirectorio para el fichero en la cache.
-IMGDIR=$(ogGetParentPath "$1" "/$2")
+IMGDIR=$(ogGetParentPath CACHE "/$2")
if [ $? != 0 ]; then
echo "[5] Crear subdirectorio del fichero \"$2 $(dirname "$2")."
- ogMakeDir "CACHE" $(dirname "/$2")
- IMGDIR=$(ogGetParentPath "$1" "/$2") || exit $?
+ ogMakeDir CACHE $(dirname "/$2")
+ IMGDIR=$(ogGetParentPath CACHE "/$2") || exit $?
fi
-
-
case "$PROTOCOLO" in
torrent | TORRENT )
- echo "ogCopyFile $1 $2.torrent absolute $OGCAC$OGIMG"
- ogCopyFile $1 $2.torrent $OGCAC$OGIMG
+ echo "ogCopyFile $1 $2.torrent absolute $OGCAC/$OGIMG"
+ # tiempos
+ timewait=$(expr $(printf '%d\n' 0x$(ogGetMacAddress | awk -F: '{print $5$6}')) \* 120 / 65535)
+ ogCopyFile $REPOSITORIO "$2.torrent" "$IMGDIR"
#TODO: comprobar que el tracker definido en el fichero es correcto.
#TODO comprobar que el fichero torrent está en cache
- echo "ogTorrentStart CACHE $2.torrent $4"
- ogTorrentStart CACHE $2.torrent $4
+ # retardamos el inicio -aleatorio de 0 a 120 segundos- al tracker para gestionar mas de +-40 equipos
+ P2PWAIT=$[ ( $RANDOM % 120 ) + 1 ]
+ echo "Esperando $P2PWAIT segundos para iniciar ogTorrentStart CACHE $2.torrent $4"
+ sleep $P2PWAIT
+ ogTorrentStart CACHE "$2.torrent" $4
;;
multicast | MULTICAST )
echo "determinando puerto principal y auxiliar."
@@ -86,7 +101,7 @@ case "$PROTOCOLO" in
echo "comprobando puerto $PORTAUX en $REPOIP (sesion multicast en puerto $PORT) "
if (nmap -n -sU -p $PORTAUX $REPOIP | grep open)
then
- ogMcastReceiverFile $PORT CACHE $2
+ ogMcastReceiverFile $PORT CACHE "$2"
else
# TODO ticket 379 Realizar la petición basada en identificador de operacion
echo "solicita la apertura: hose $REPOIP 2009 --out sh -c "echo -ne START_MULTICAST $2 $OPTPROTOCOLO""
@@ -95,7 +110,7 @@ case "$PROTOCOLO" in
sleep 10
if (nmap -n -sU -p $PORTAUX $REPOIP | grep open)
then
- ogMcastReceiverFile $PORT CACHE $2
+ ogMcastReceiverFile $PORT CACHE "$2"
else
echo "la peticion ha fallado: hose $REPOIP 2009 --out sh -c echo -ne START_MULTICAST $2 $OPTPROTOCOLO"
exit 1
@@ -104,13 +119,14 @@ case "$PROTOCOLO" in
;;
unicast | UNICAST )
echo "unicast"
- ogCopyFile $1 $2 $OGCAC$OGIMG
+ ogCopyFile $REPOSITORIO "$2" "$IMGDIR"
;;
esac
-ogUpdateCacheIsNecesary $1 $2; RETVAL=$?
+ogUpdateCacheIsNecesary $REPOSITORIO "$2"; RETVAL=$?
# si RETVAL=0 => actualizamos si RETVAL=1 no actaulizasmo-exit 0 || si RETVAL>2 exit 1
[ "$RETVAL" == "0" ] && exit 1
[ "$RETVAL" == "1" ] && exit 0
-[ "$RETVAL" -gt "1" ] && exit 1 \ No newline at end of file
+[ "$RETVAL" -gt "1" ] && exit 1
+