source: client/shared/scripts/initCache @ 8bd836a

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since 8bd836a was 8bd836a, checked in by ramon <ramongomez@…>, 9 years ago

#512: Cambios en script initCache:

  • Parámetro opcional para indicar nº de partición (por defecto, 4)
  • Parámetro opcional para indicar que la caché se queda desmontada (cadena NOMOUNT)

El formato de ejecución queda ahora:

initCache [int_ndisk [int_npart]] {-1 | 0 | int_size} [NOMOUNT]

git-svn-id: https://opengnsys.es/svn/branches/version1.1@4963 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100755
File size: 3.6 KB
Line 
1#!/bin/bash
2# Scirpt de iniciación de la caché local de disco.
3# (puede usarse como base para el programa de restauración de imágenes usado por OpenGnSys Admin).
4# Formato: initCache [int_ndisk [int_npart]] {-1 | 0 | int_size} [NOMOUNT]
5# Versión: 0.9.1, 2009/03/17, - Ramón Gómez, Univ. Sevilla - Versión inicial.
6# Versión: 0.9.2, 2010/07/27, - Ramón Gómez, Univ. Sevilla - redefinir parámetro.
7# Version: 1.0.5, 2012/09/18, - Univ. Huelva - Nuevo parametro para indicar el disco donde se creara la CACHE, si no se indica, se usa 1
8# Version: 1.1.0, 2016/06/16, - Ramón Gómez, Univ. Sevilla - Nuevos parámetros: partición de caché (por defecto, 4) y cadena opcional "NOMOUNT" para dejar la caché sin montar.
9
10TIME1=$SECONDS
11PROG="$(basename $0)"
12EXECFORMAT="$PROG [int_ndisk [int_npart]] {-1 | 0 | int_size} [NOMOUNT]"
13
14# Si el último parámetro es la cadena "NOMOUNT", marcar para no montar y descartarlo.
15if [[ "${*^^}" =~ \ NOMOUNT$ ]]; then
16    MOUNT=0
17    PARAMS=$[$#-1]
18else
19    MOUNT=1
20    PARAMS=$#
21fi
22# Tomar valores según el número de parámetros restantes.
23case $PARAMS in
24    1)  # Por defecto, disco 1 partición 4.
25        NDISK=1
26        NPART=4
27        SIZE=$1
28        ;;
29    2)  # Elegir disco y partición 4 por defecto.
30        NDISK=$1
31        NPART=4
32        SIZE=$2
33        ;;
34    3)  # Elegir disco y partición.
35        NDISK=$1
36        NPART=$2
37        SIZE=$3
38        ;;
39    *)  # Error de formato.
40        ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $EXECFORMAT"
41        exit $?
42        ;;
43esac
44
45# Si disco o partición no son mayores o iguales que 1, error.
46if [ -n "${NDISK//[-0-9]/}${NPART//[-0-9]/}" ] || [ $NDISK -lt 1 ] || [ $NPART -lt 1 ] ; then
47    ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $EXECFORMAT"
48    exit $?
49fi
50# Si tamaño no es numérico o tamaño<-1, error.
51if [ -n "${SIZE//[-0-9]/}" ] || [ $SIZE -lt -1 ]; then
52    ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $EXECFORMAT"
53    exit $?
54fi
55        exit
56# Si tamaño=0, no hacer nada.
57if [ $SIZE -eq 0 ]; then
58    echo "No modificar la caché local."
59    exit
60fi
61# Si tamaño=-1, borrar caché.
62if [ $SIZE -eq -1 ]; then
63    echo "[10] Trabajar sin caché local."
64    ogUnmountCache 2>/dev/null
65    ogDeleteCache
66else
67    # Si la caché actual está definida en otro disco y partición, se elimina.
68    if [ "$NDISK $NPART" = "$(ogFindCache)" ]; then
69        echo "[10] Detectada otra caché, eliminarla"
70        ogUnmountCache 2>/dev/null
71        ogDeleteCache
72    fi
73
74    # Error si tamaño definido no es >0.
75    if [ ! $SIZE -gt 0 ]; then
76        ogRaiseError $OG_ERR_FORMAT "$MSG_ERR_FORMAT: !($SIZE>0)"
77        exit $?
78    fi
79    # Si no existe caché o si cambia su tamaño, crearla.
80    CACHESIZE=$(ogGetCacheSize 2>/dev/null)
81    if [ "$SIZE" != "$CACHESIZE" ]; then
82        echo "[10] Crar partición de caché local."
83        ogUnmountCache 2>/dev/null
84        ogCreateCache $NDISK $NPART $SIZE
85        ogUpdatePartitionTable $NDISK
86    fi
87    # Si caché no montada y no formateada, formatear.
88    CACHE=$(ogFindCache) || exit $?
89    if ! ogIsFormated $CACHE; then
90        echo "[50] Formatear caché local."
91        ogFormatCache
92    fi
93    echo "[70] Comprobar montaje de caché local."
94    ogMountCache 2>/dev/null
95    # Si error al montar, chequear sistema de archivos y volver a montar.
96    if [ $? != 0 ]; then
97        echo "[80] Comprobar consistencia y volver a montar caché local."
98        ogCheckFs $CACHE
99        ogMountCache || exit $?
100    fi
101    # Dejar desmontada la caché si se ha solicitado.
102    if [ $MOUNT == 0 ]; then
103        echo "[90] Dejar desmontada la caché local."
104        ogUnmountCache 2>/dev/null
105    fi
106fi
107# Duración del proceso.
108TIME=$[SECONDS-TIME1]
109echo "[100] Duración de la operación $[TIME/60]m $[TIME%60]s"
110
Note: See TracBrowser for help on using the repository browser.