summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authoririna <irinagomez@us.es>2017-11-08 13:22:41 +0000
committeririna <irinagomez@us.es>2017-11-08 13:22:41 +0000
commit744ecd6404213903f08b712aa4fac5ea19fa3201 (patch)
tree3ceab32680e6accc72a7a7f3bff9a1ffacc0cb7a /server
parent043e67df0eb136868ca7d5852e9753026cb23bb8 (diff)
#770 Script de servidor sincronizadas: si no existe fichero de idioma toma por defecto el castellano.
git-svn-id: https://opengnsys.es/svn/branches/version1.1@5503 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'server')
-rwxr-xr-xserver/bin/createfileimage61
-rwxr-xr-xserver/bin/mountimage66
-rwxr-xr-xserver/bin/partclone2sync174
-rwxr-xr-xserver/bin/reduceimage54
-rwxr-xr-xserver/bin/unmountimage47
5 files changed, 0 insertions, 402 deletions
diff --git a/server/bin/createfileimage b/server/bin/createfileimage
deleted file mode 100755
index 73c57711..00000000
--- a/server/bin/createfileimage
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/bash
-#/**
-# createtimage
-#@brief Crea o redimensiona el archivo de la imagen.
-#@param 1 imagen
-#@param 2 extension [ img|diff ]
-#@param 3 tamaño de la imagen en kb.
-#@return
-#@exception OG_ERR_FORMAT # 1 formato incorrecto.
-#@exception OG_ERR_DONTSYNC_IMAGE #71 Imagen no sincronizable (es monolitica)
-#@version 1.0 - Montar imagen sincronizable
-#@author Irina Gomez
-#@date 2013-05-23
-#*/ ##
-BASEDIR=/opt/opengnsys
-REPODIR="$BASEDIR/images"
-REPOLOG=$BASEDIR/log/ogAdmRepo.log
-source $BASEDIR/client/etc/lang.$LANG.conf
-
-PROG="$(basename $0)"
-# Si se solicita, mostrar ayuda.
-if [ "$*" == "help" ]; then
- echo -e " $PROG: $MSG_HELP_ogCreateFileImage \n" \
- "$MSG_FORMAT: $PROG image [ img|diff ] size_kb \n" \
- "base -> $PROG Windows7 img 3900000 \n" \
- "diff -> $PROG Ubuntu12 diff 450000"
- exit 0
-fi
-
-[ $# -lt 3 ] && echo -e "$PROG: Error: $MSG_ERR_FORMAT \n $MSG_FORMAT: $PROG image [ img | diff ] size_Kb " && exit 1
-
-if [ "$USER" != "root" ]; then
- echo "$PROG: Error: solo ejecutable por root" >&2
- exit 1
-fi
-
-IMGEXT="$2"
-
-# Si existe imagen, Comprobamos que no esta bloqueada y que es sincronizable
-IMGFILE="$REPODIR/$1.$IMGEXT"
-if [ -f $IMGFILE ]; then
- [ -f $IMGFILE.lock ] && echo "$PROG: Error: $MSG_ERR_LOCKED $1 $IMGEXT" && exit 4
-
-
- if ! file $IMGFILE | grep -i -e " BTRFS Filesystem " -e " ext4 filesystem " >/dev/null ; then
- echo "$PROG: Error: $MSG_ERR_DONTSYNC_IMAGE $1 $2"
- exit 71
- fi
-fi
-
-touch $IMGFILE.lock
-
-# El tamaño minimo de la imagen es 300000 para poder formatear en fs btrfs.
-SIZEREQUIRED=$3
-[ $SIZEREQUIRED -lt 300000 ] && SIZEREQUIRED=300000
-
-echo CREATE_IMAGE "$1" $IMGEXT $SIZEREQUIRED
-echo -ne CREATE_IMAGE "$1" $IMGEXT $SIZEREQUIRED| /opt/opengnsys/sbin/ogAdmRepoAux || exit $?
-echo "Los resultado se registran en $REPOLOG. "
-
-rm $IMGFILE.lock
diff --git a/server/bin/mountimage b/server/bin/mountimage
deleted file mode 100755
index 6187724d..00000000
--- a/server/bin/mountimage
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/bin/bash
-#/**
-# mountimage
-#@brief Monta imagen sincronizable en el repositorio con permisos de escritura
-#@param 1 imagen
-#@param 2 extension [ img|diff ] opcional, por defecto img
-#@return Directorio de montaje de la imagen.
-#@exception OG_ERR_FORMAT # 1 formato incorrecto.
-#@exception OG_ERR_NOTFOUND # 2 Fichero o dispositivo no encontrado
-#@exception OG_ERR_DONTSYNC_IMAGE #71 Imagen no sincronizable (es monolitica)
-#@exception OG_ERR_DONTMOUNT_IMAGE # 70 Error al montar una imagen sincronizada
-#@version 1.0 - Montar imagen sincronizable
-#@author Irina Gomez
-#@date 2013-05-23
-#*/ ##
-BASEDIR=/opt/opengnsys
-REPODIR="$BASEDIR/images"
-source $BASEDIR/client/etc/lang.$LANG.conf
-
-PROG="$(basename $0)"
-# Si se solicita, mostrar ayuda.
-if [ "$*" == "help" ]; then
- echo -e " $PROG: $MSG_HELP_ogMountImage \n" \
- "$MSG_FORMAT: $PROG nombre_image [ img|diff ] \n" \
- "base -> $PROG Windows7 \n" \
- "diff -> $PROG Ubuntu12 diff"
- exit 0
-fi
-
-[ $# -lt 1 ] && echo -e "$PROG: Error: $MSG_ERR_FORMAT \n $MSG_FORMAT: $PROG image [ img | diff ]" && exit 1
-
-if [ "$USER" != "root" ]; then
- echo "$PROG: Error: solo ejecutable por root" >&2
- exit 1
-fi
-
-[ "$2" == "" -o "$2" == "img" ] && IMGEXT="img" || IMGEXT="img.diff"
-
-# Comprobamos que existe imagen
-IMGFILE="$REPODIR/$1.$IMGEXT"
-[ ! -f $IMGFILE ] && echo "$PROG: Error: $MSG_ERR_NOTFOUND $1 $IMGEXT" && exit 2
-
-
-# Comprobar que la imagen es sincronizable
-file $IMGFILE | grep -i -e " BTRFS Filesystem " >/dev/null && IMGFS=BTRFS
-file $IMGFILE | grep -i -e " ext4 filesystem " >/dev/null && IMGFS=EXT4
-if [ "$IMGFS" != "BTRFS" -a "$IMGFS" != "EXT4" ] ; then
- echo "$PROG: Error: $MSG_ERR_DONTSYNC_IMAGE $1 $2"
- exit 71
-fi
-
-MOUNTDIR="$REPODIR/mount/$1"
-[ "$IMGEXT" == "img.diff" ] && MOUNTDIR="$MOUNTDIR.${IMGEXT#*\.}"
-mkdir -p "$MOUNTDIR"
-
-# Comprobamos si la imagen esta montada y si es así nos salimos.
-df |grep "$MOUNTDIR$" 2>&1 >/dev/null && echo "$MOUNTDIR" && exit 0
-
-if [ "$IMGFS" == "EXT4" ] ; then
- mount -t ext4 "$IMGFILE" "$MOUNTDIR"
-else
- mount -o compress=lzo "$IMGFILE" "$MOUNTDIR"
-fi
-[ $? -eq 0 ] || ( echo "$MSG_ERR_DONTMOUNT_IMAGE $1 $2" ; exit 70)
-echo "$MOUNTDIR"
-
diff --git a/server/bin/partclone2sync b/server/bin/partclone2sync
deleted file mode 100755
index 4272cf06..00000000
--- a/server/bin/partclone2sync
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/bin/bash
-#/**
-# partclone2sync
-#@brief Convierte imagen de partclone en imagen sincronizable.
-#@param 1 imagen partclone.
-#@param 2 imagen sincronizable.
-#@param 3 tipo de sincronización y formato de la imagen SYNC1 (directorio) y SYNC2 (fichero)
-#@exception OG_ERR_FORMAT # 1 formato incorrecto.
-#@exception OG_ERR_NOTFOUND # 2 Fichero o dispositivo no encontrado
-#@exception OG_ERR_LOCKED # 4 Imagen de partclone bloqueada.
-#@exception OG_ERR_IMAGE # 5 Error al crear la imagen.
-#@exception OG_CACHESIZE # 16 No hay espacio suficiente en el disco.
-#@note Necesita tener instalado partclone-utils y lzop
-#@version 1.0 -
-#@author Irina Gomez
-#@date 2014-01-22
-#*/ ##
-trap "onexit \"$1\" \"$2\" $3" 0 5 16 9 15
-
-function onexit() {
- local exit_status=$?
- # Desmontamos el cliente de opengnsys y la imagen temporal.
- umount $OGCLIENTDIR/ogclientmount $AUXDIR
- rm -rf $IMGINFO $FILEHEAD $TMPLOG
-
- # Borramos los ficheros de bloqueo de las imagenes nuevas.
- rm -rf $RSYNCIMG.img.lock $AUXIMG.lock
- # Borramos los ficheros de bloqueo dela imagen de partclone si no estaba bloqueada.
- [ $exit_status -eq 4 ] || rm -rf $PARTCLONEIMG.lock
-
- # Borramos las imagenes y directorios temporales.
- rm $AUXIMG
- rmdir $AUXDIR $OGCLIENTDIR/ogclientmount
-
- exit $exit_status
-}
-
-TIME1=$SECONDS
-
-BASEDIR=/opt/opengnsys
-REPODIR="$BASEDIR/images"
-BINDIR="$BASEDIR/bin"
-PROG="$(basename $0)"
-# Cargamos los mensajes en el idioma del sistema.
-source $BASEDIR/client/etc/lang.$LANG.conf
-
-# Sistema de fichero de la imagen según kernel, menor que 3.7 EXT4. comparamos revision
-[ $(uname -r|cut -d. -f2) -lt 7 ] && IMGFS="EXT4" || IMGFS="BTRFS"
-
-# Mostrar ayuda: Si se solicita, si faltan parametros o $3 no es SYNC1 o SYNC2.
-if [ "$*" == "help" -o $# -lt 3 ] && ! [[ "$3" == SYNC[1,2] ]]; then
- echo -e "$PROG: $MSG_HELP_partclone2sync \n" \
- "$MSG_FORMAT: $PROG image_partclone image_rsync [ SYNC1 | SYNC2 ] \n" \
- " $PROG Windows7 Windows72013 SYNC1 "
- exit 0
-fi
-
-if [ "$USER" != "root" ]; then
- echo "$PROG: Error: solo ejecutable por root" >&2
- exit 1
-fi
-
-
-PARTCLONEIMG="$REPODIR/$1.img"
-RSYNCIMG="$REPODIR/$2"
-AUXIMG="$REPODIR/$1.tmp.img"
-AUXDIR="/tmp/partclone2rsync$$"
-TYPE="$3"
-TMPLOG=/tmp/rsync$$.sal
-
-# Comprobamos que exista la imagen.
-! [ -f $PARTCLONEIMG ] && echo "$MSG_ERR_NOTFOUND: $1" && exit 2
-
-# Comprobamos que la imagen no este bloqueada.
-[ -f $PARTCLONEIMG.lock ] && echo "$MSG_ERR_LOCKED: $1" && exit 4
-
-# Usamos el partclone del ogclient.
-OGCLIENTDIR=$BASEDIR/tftpboot/ogclient
-[ -d $OGCLIENTDIR/ogclientmount ] || mkdir $OGCLIENTDIR/ogclientmount
-mount $OGCLIENTDIR/ogclient.sqfs $OGCLIENTDIR/ogclientmount
-PATHPARTCLONE=$OGCLIENTDIR/ogclientmount/usr/sbin
-
-# Creamos fichero de bloqueo
-touch $PARTCLONEIMG.lock $AUXIMG.lock
-
-
-# Datos imagen.
-echo [10] Obtenemos datos del partclone.
-FILEHEAD=/tmp/$(basename $PARTCLONEIMG).infohead
-COMPRESSOR=`file $PARTCLONEIMG | awk '{print $2}'`
-$COMPRESSOR -dc $PARTCLONEIMG 2>/dev/null | head > $FILEHEAD
-PARTCLONEINFO=$(LC_ALL=C partclone.info $FILEHEAD 2>&1)
-if `echo $PARTCLONEINFO | grep size > /dev/null`
-then
- FS=$(echo $PARTCLONEINFO | awk '{gsub(/\: /,"\n"); print toupper($8);}')
- echo $PARTCLONEINFO | grep GB > /dev/null && SIZEFACTOR=1000000 || SIZEFACTOR=1024
- IMGSIZE=$(echo $PARTCLONEINFO | awk -v FACTOR=$SIZEFACTOR '{gsub(/\: /,"\n"); printf "%d\n", $11*FACTOR;}')
-else
- echo "Error: partclone.info no detecta la imagen"
- exit 5
-fi
-[ "$FS" == "NTFS" ] && echo "Error: Todavia no podemos convertir imagenes de Windows" && exit 6
-
-# Calculamos el espacio disponible en la particion de opengnsys.
-echo -n "[20]$MSG_SCRIPTS_CREATE_SIZE "
-for DIR in "/" "/opt" "/opt/opengnsys" "/opt/opengnsys/images"
-do
- AUXSIZE=$(df|grep $DIR$|awk '{print $3}')
- [ "$AUXSIZE" != "" ] && PARTSIZE=$AUXSIZE
-done
-let REQUIRESIZE=2*$IMGSIZE
-if [ $PARTSIZE -lt $REQUIRESIZE ]; then
- echo "No hay espacio suficiente para descomprimir y crear la imagen: $REQUIRESIZE."
- exit 16
-fi
-echo "$REQUIRESIZE $PARTSIZE"
-
-# Descomprimimos la imagen de partclone.
-echo [30] Descomprimimos la imagen de partclone.
-$COMPRESSOR -dc $PARTCLONEIMG | $PATHPARTCLONE/partclone.restore -C -s - -O $AUXIMG
-
-TIME2=$[SECONDS-TIME1]
-echo " $MSG_SCRIPTS_TASK_END: $MSG_SCRIPTS_TIME_PARTIAL: $[TIME2/60]m $[TIME2%60]s"
-
-# Montamos la imagen:
-mkdir -p $AUXDIR
-mount $AUXIMG $AUXDIR
-
-# Sincronizamos de la imagen del partclone a la del rsync.
-echo "[60] Sincronizamos desde la imagen de partclone a la de rsync."
-if [ "$TYPE" == "SYNC1" ]; then
- mkdir -p $RSYNCIMG
- echo " * Log temporal en: $TMPLOG"
- echo rsync -aHAX $AUXDIR/ $RSYNCIMG --- log: $TMPLOG
- rsync -aHAXv $AUXDIR/ $RSYNCIMG >> $TMPLOG
-TIME3=$[SECONDS-TIME2]
-echo " $MSG_SCRIPTS_TASK_END: $MSG_SCRIPTS_TIME_PARTIAL: $[TIME3/60]m $[TIME3%60]s"
-else
- IMGINFO="/tmp/ogimg.info$$"
- IMGDIR="$REPODIR/mount/$(basename $RSYNCIMG)"
- # Calculamos el tamaño de la imagen
- SIZE=$(df -k|awk -v P="$AUXDIR" '{if ($6==P) print $3}')
- # Creo fichero de informacion de la imagen
- echo "#$FSIMG:LZO:$FS:$SIZE" > $IMGINFO
- # Factor de compresion de la imagen
- [ "$FS" == "NTFS" ] && ZFACTOR=120 || ZFACTOR=110
- [ "$FSIMG" == "BTRFS" ] && let ZFACTOR=$ZFACTOR-30
- let SIZE=$SIZE*$ZFACTOR/100
-
- # Creamos el fichero de la imagen vacio (queda montado)
- echo " * $MSG_HELP_ogCreateFileImage"
- $BINDIR/createfileimage $(basename $RSYNCIMG) img $SIZE || exit 5
- touch $RSYNCIMG.img.lock
- TIME3=$[SECONDS-TIME2]
- echo " $MSG_SCRIPTS_TASK_END: $MSG_SCRIPTS_TIME_PARTIAL: $[TIME3/60]m $[TIME3%60]s"
-
- # Sincronizo las imagenes antigua y nueva.
- echo " * Sincroniza las imagenes antigua y nueva. log temporal en: $TMPLOG"
- echo rsync -aHAX $AUXDIR/ $IMGDIR
- rsync -aHAXv $AUXDIR/ $IMGDIR >> $TMPLOG
- TIME4=$[SECONDS-TIME3]
- echo " $MSG_SCRIPTS_TASK_END: $MSG_SCRIPTS_TIME_PARTIAL: $[TIME4/60]m $[TIME4%60]s"
- # copiamos el fichero de informacion dentro de la imagen.
- mv $IMGINFO $IMGDIR/ogimg.info
- # Desmontamos la imagen y la reducimos al minimo.
- $BINDIR/unmountimage $(basename $RSYNCIMG) img
- echo " * $MSG_HELP_ogReduceImage."
- rm $RSYNCIMG.img.lock
- $BINDIR/reduceimage $(basename $RSYNCIMG) img
-
-fi
-
-TIME=$[SECONDS-TIME1]
-echo " $MSG_SCRIPTS_END: $MSG_SCRIPTS_TIME_TOTAL: $[TIME/60]m $[TIME%60]s"
diff --git a/server/bin/reduceimage b/server/bin/reduceimage
deleted file mode 100755
index cb2d2f37..00000000
--- a/server/bin/reduceimage
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/bash
-#/**
-# reduceimage
-#@brief Reduce el archivo de la imagen a tamaño datos + 500M
-#@param 1 imagen
-#@param 2 extension [ img|diff ] opcional, por defecto img
-#@return
-#@exception OG_ERR_FORMAT # 1 formato incorrecto.
-#@exception OG_ERR_NOTFOUND # 2 Fichero o dispositivo no encontrado
-#@exception OG_ERR_LOCKED # 4 Partición o fichero bloqueado
-#@exception OG_ERR_DONTSYNC_IMAGE #71 Imagen no sincronizable (es monolitica)
-#@version 1.0 - Reducir tamaño imagen sincronizable
-#@author Irina Gomez
-#@date 2013-05-23
-#*/ ##
-BASEDIR=/opt/opengnsys
-REPODIR="$BASEDIR/images"
-REPOLOG=$BASEDIR/log/ogAdmRepo.log
-source $BASEDIR/client/etc/lang.$LANG.conf
-
-PROG="$(basename $0)"
-# Si se solicita, mostrar ayuda.
-if [ "$*" == "help" ]; then
- echo -e " $PROG: $MSG_HELP_ogReduceImage \n" \
- "$MSG_FORMAT: $PROG nombre_image [ img|diff ] \n" \
- "base -> $PROG Windows7 \n" \
- "diff -> $PROG Ubuntu12 diff"
- exit 0
-fi
-
-[ $# -lt 1 ] && echo -e "$PROG: Error: $MSG_ERR_FORMAT \n $MSG_FORMAT: $PROG image [ img | diff ]" && exit 1
-
-if [ "$USER" != "root" ]; then
- echo "$PROG: Error: solo ejecutable por root" >&2
- exit 1
-fi
-
-[ "$2" == "" -o "$2" == "img" ] && IMGEXT="img" || IMGEXT="img.diff"
-# Comprobamos que existe imagen y que no este bloqueada
-IMGFILE="$REPODIR/$1.$IMGEXT"
-[ ! -f $IMGFILE ] && echo "$PROG: Error: $MSG_ERR_NOTFOUND $1 $IMGEXT" && exit 2
-[ -f $IMGFILE.lock ] && echo "$PROG: Error: $MSG_ERR_LOCKED $1 $IMGEXT" && exit 4
-
-# Comprobar que la imagen es sincronizable
-if ! file $IMGFILE | grep -i -e " BTRFS Filesystem " -e " ext4 filesystem " >/dev/null ; then
- echo "$PROG: Error: $MSG_ERR_DONTSYNC_IMAGE $1 $2"
- exit 71
-fi
-
-touch $IMGFILE.lock
-echo -ne REDUCE_IMAGE "$1" ${IMGEXT#*\.} | /opt/opengnsys/sbin/ogAdmRepoAux
-echo "Los resultado se registran en $REPOLOG. "
-
-rm $IMGFILE.lock
diff --git a/server/bin/unmountimage b/server/bin/unmountimage
deleted file mode 100755
index 812fbdd4..00000000
--- a/server/bin/unmountimage
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/bash
-#/**
-# unmountimage
-#@brief Desmonta imagen sincronizable
-#@param 1 imagen
-#@param 2 extension [ img|diff ] opcional, por defecto img
-#@return
-#@exception OG_ERR_FORMAT # 1 formato incorrecto.
-#@version 1.0 - Desmontar imagen sincronizable
-#@author Irina Gomez
-#@date 2013-05-23
-#*/ ##
-BASEDIR=/opt/opengnsys
-REPODIR="$BASEDIR/images"
-REPOLOG=$BASEDIR/log/ogAdmRepo.log
-source $BASEDIR/client/etc/lang.$LANG.conf
-
-PROG="$(basename $0)"
-# Si se solicita, mostrar ayuda.
-if [ "$*" == "help" ]; then
- echo -e " $PROG: $MSG_HELP_ogUnmountImage \n" \
- "$MSG_FORMAT: $PROG nombre_image [ img|diff ] \n" \
- "base -> $PROG Windows7 \n" \
- "diff -> $PROG Ubuntu12 diff"
- exit 0
-fi
-
-[ $# -lt 1 ] && echo -e "$PROG: Error: $MSG_ERR_FORMAT \n $MSG_FORMAT: $PROG image [ img | diff ]" && exit 1
-
-if [ "$USER" != "root" ]; then
- echo "$PROG: Error: solo ejecutable por root" >&2
- exit 1
-fi
-
-# Comprobamos que imagen la imagen esta montada
-MOUNTDIR="$REPODIR/mount/$1"
-if [ "$2" == "diff" ]; then
- IMGEXT="diff"
- MOUNTDIR="$MOUNTDIR.diff"
-else
- IMGEXT="img"
-fi
-# Si la imaen no está montada me salgo
-df |grep "$MOUNTDIR$" 2>&1 >/dev/null || exit 0
-
-echo -ne UMOUNT_IMAGE "$1" $IMGEXT | /opt/opengnsys/sbin/ogAdmRepoAux
-echo "Los resultado se registran en $REPOLOG. "