[f8f4dfa] | 1 | #!/bin/bash |
---|
[e42f34e] | 2 | # Scirpt de ejemplo para restaurar una imagen. |
---|
[f8f4dfa] | 3 | # (puede usarse como base para el programa de restauración de imágenes usado por OpenGNSys Admin). |
---|
| 4 | |
---|
[f5432db7] | 5 | TIME1=$SECONDS |
---|
[f8f4dfa] | 6 | PROG="$(basename $0)" |
---|
[87a7a799] | 7 | if [ $# -lt 4 ]; then |
---|
[d2f28cf] | 8 | ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG REPO|CACHE imagen ndisco nparticion [ UNICAST|MULTICAST opciones protocolo]" |
---|
[f8f4dfa] | 9 | exit $? |
---|
| 10 | fi |
---|
| 11 | |
---|
[d2f28cf] | 12 | #Load engine configurator from engine.cfg file. |
---|
| 13 | #Carga el configurador del engine desde el fichero engine.cfg |
---|
| 14 | # Valores por defecto: #IMGPROG="partclone" ; #IMGCOMP="lzop" ; #IMGEXT="img" #IMGREDUCE="TRUE" |
---|
| 15 | [ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg |
---|
| 16 | |
---|
| 17 | # Clear temporary file used as log track by httpdlog |
---|
| 18 | # Limpia los ficheros temporales usados como log de seguimiento para httpdlog |
---|
| 19 | echo " " > $OGLOGSESSION; echo " " > $OGLOGCOMMAND; echo " " > ${OGLOGCOMMAND}.tmp |
---|
| 20 | |
---|
| 21 | echo "[1] $MSG_SCRIPTS_START $0 $*" | tee -a $OGLOGSESSION $OGLOGFILE |
---|
| 22 | |
---|
[f8f4dfa] | 23 | # Procesar parámetros de entrada |
---|
[d2f28cf] | 24 | REPO="${1^^}" |
---|
| 25 | IMGNAME="$2" |
---|
| 26 | DISK="$3" |
---|
| 27 | PART="$4" |
---|
| 28 | PROTO="${5^^}" |
---|
| 29 | PROTO=${PROTO:-"UNICAST"} |
---|
| 30 | PROTOOPT="$6" |
---|
| 31 | IMGTYPE="${IMGTYPE:-"img"}" |
---|
| 32 | # Comprobar que existe la imagen del origen. |
---|
| 33 | IMGFILE=$(ogGetPath "$REPO" "$IMGNAME.$IMGTYPE") || ogRaiseError $OG_ERR_NOTFOUND "$REPO, ${IMGNAME%/*}" || exit $? |
---|
| 34 | IMGDIR=$(ogGetParentPath "$REPO" "$IMGNAME") || ogRaiseError $OG_ERR_NOTFOUND "$REPO, ${IMGNAME%/*}" || exit $? |
---|
[41d9755] | 35 | |
---|
[d2f28cf] | 36 | # Procesar protocolos de transferencia. |
---|
| 37 | case "$PROTO" in |
---|
| 38 | UNICAST|UNICAST-DIRECT) |
---|
| 39 | # Restaurar la imagen. |
---|
| 40 | echo "[40] ogRestoreImage $REPO $IMGNAME $DISK $PART UNICAST" |
---|
[f9e03ad] | 41 | ogRestoreImage "$REPO" "$IMGNAME" "$DISK" "$PART" UNICAST | tee -a $OGLOGCOMMAND |
---|
| 42 | RETVAL=${PIPESTATUS[0]} |
---|
[d2f28cf] | 43 | ;; |
---|
| 44 | MULTICAST|MULTICAST-DIRECT) |
---|
| 45 | PORT=$(echo $PROTOOPT | cut -f1 -d":") |
---|
| 46 | TOOL=$(ogGetImageProgram REPO $IMGNAME) |
---|
| 47 | COMPRESS=$(ogGetImageCompressor REPO $IMGNAME) |
---|
| 48 | #TODO comprobar parametros anteriores |
---|
| 49 | ogMcastRequest "$IMGNAME.img" "$PROTOOPT" |
---|
| 50 | ogMcastReceiverPartition "$DISK" "$PART" "$PORT" "$TOOL" "$COMPRESS" | tee -a $OGLOGCOMMAND |
---|
[f9e03ad] | 51 | RETVAL=${PIPESTATUS[0]} |
---|
[d2f28cf] | 52 | ;; |
---|
| 53 | *) # Protocolo desconocido. |
---|
| 54 | ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG REPO|CACHE imagen ndisco nparticion [ UNICAST|MULTICAST opciones ]" |
---|
| 55 | exit $? |
---|
| 56 | esac |
---|
[b0ff94d] | 57 | |
---|
[f5432db7] | 58 | TIME=$[SECONDS-TIME1] |
---|
[bfeb89a] | 59 | echo "[100] Duracion de la operacion $[TIME/60]m $[TIME%60]s" |
---|
[f8f4dfa] | 60 | |
---|
[f9e03ad] | 61 | # Código de salida del comando prinicpal de restauración. |
---|
| 62 | exit $RETVAL |
---|
| 63 | |
---|