diff options
Diffstat (limited to 'client/shared/scripts/initCache')
-rwxr-xr-x | client/shared/scripts/initCache | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/client/shared/scripts/initCache b/client/shared/scripts/initCache new file mode 100755 index 00000000..69cdc535 --- /dev/null +++ b/client/shared/scripts/initCache @@ -0,0 +1,60 @@ +#!/bin/bash +# Scirpt de iniciación de la caché local de disco. +# (puede usarse como base para el programa de restauración de imágenes usado por OpenGnSys Admin). +# Versión: 0.9.1, 2009/03/17, - Ramón Gómez, Univ. Sevilla - Versión inicial. +# Versión: 0.9.2, 2010/07/27, - Ramón Gómez, Univ. Sevilla - redefinir parámetro. + +TIME1=$SECONDS +PROG="$(basename $0)" +if [ $# -ne 1 ]; then + ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG -1 | 0 | tamaño" + exit $? +fi + +# Si tamaño no es numérico o tamaño<-1, error. +if [ -n "${1//[-0-9]/}" ] || [ $1 -lt -1 ]; then + ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG -1 | 0 | tamaño" + exit $? +fi +# Si tamaño=0, no hacer nada. +if [ $1 -eq 0 ]; then + echo "No modificar la caché local." + exit +fi +# Si tamaño=-1, borrar caché. +if [ $1 -eq -1 ]; then + echo "[10] Trabajar sin caché local." + ogUnmountCache 2>/dev/null + ogDeleteCache +else + # Si tamaño>0, ... + if [ ! $1 -gt 0 ]; then + ogRaiseError $OG_ERR_FORMAT "$MSG_ERR_FORMAT: !($1>0)" + exit $? + fi + # Si no existe caché o si cambia su tamaño, crearla. + SIZE=$(ogGetCacheSize 2>/dev/null) + if [ "$1" != "$SIZE" ]; then + echo "[10] Crar partición de caché local." + ogUnmountCache 2>/dev/null + ogCreateCache "$1" + fi + # Si caché no montada y no formateada, formatear. + CACHE=$(ogFindCache) || exit $? + if ! ogIsFormated $CACHE; then + echo "[50] Formatear caché local." + ogFormatCache + fi + echo "[70] Montar caché local." + ogMountCache 2>/dev/null + # Si error al montar, chequear sistema de archivos y volver a montar. + if [ $? != 0 ]; then + echo "[80] Comprobar y montar caché local." + ogCheckFs $CACHE + ogMountCache || exit $? + fi +fi +# Duración del proceso. +TIME=$[SECONDS-TIME1] +echo "[100] Duración de la operación $[TIME/60]m $[TIME%60]s" + |