summaryrefslogtreecommitdiffstats
path: root/client/shared/scripts/initCache
diff options
context:
space:
mode:
Diffstat (limited to 'client/shared/scripts/initCache')
-rwxr-xr-xclient/shared/scripts/initCache60
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"
+