source: client/nfsexport/scripts/restoreImage @ 74c04a0

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 74c04a0 was 1678fa1, checked in by adv <adv@…>, 15 years ago

trunck engine Protocol.lib: ogTorrentStart corrección detección estado imagen, tiempos para el peer, leecher, seeder

git-svn-id: https://opengnsys.es/svn/trunk@1009 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100755
File size: 3.0 KB
Line 
1#!/bin/bash
2# Scirpt de ejemplo para restaurar una imagen.
3# (puede usarse como base para el programa de restauración de imágenes usado por OpenGNSys Admin).
4
5TIME1=$SECONDS
6PROG="$(basename $0)"
7if [ $# -lt 4 ]; then
8    ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG REPO|CACHE imagen ndisco nparticion [ UNICAST|MULTICAST|TORRENT ] [opciones protocolo]"
9    exit $?
10fi
11
12# Procesar parámetros de entrada
13IMGFILE=$(ogGetPath "$1" "$2.img")
14PROTO=${5:-"UNICAST"}
15if [ "$1" == "CACHE" -o "$1" == "cache" ]; then
16    IMGDIR=$(ogGetParentPath "$1" "$2")
17    # Si no existe el directorio de la imagen, crearlo.
18    if [ -z "$IMGDIR" ]; then
19        echo "[5] Creando directorio de imagen \"$1, ${2%/*}\"."
20        ogMakeDir "$1" "${2%/*}" || ogRaiseError $OG_ERR_NOTFOUND "$1, ${2%/*}" || exit $?
21    fi
22    IMGDIR=$(ogGetParentPath "$1" "$2") || ogRaiseError $OG_ERR_NOTFOUND "$1, ${2%/*}" || exit $?
23    # Procesar protocolos de transferencia.
24    case "$PROTO" in
25        UNICAST|unicast)
26            # Copiar fichero del repositorio al caché local.
27            if [ -z "$IMGFILE" ]; then
28                echo "[10] Copiando imagen \"$2\" del repositorio a caché local"
29                ogCopyFile "repo" "$2.img" "$IMGDIR" || exit $?
30                IMGFILE=$(ogGetPath "cache" "$2.img")
31            fi
32            ;;
33        MULTICAST|multicast)
34            if [ -z "$IMGFILE" ]; then
35                echo "[10] Copiando imagen multicast \"$2\" del repositorio a caché local"
36                PORTBASE=`echo $6 | cut -f1 -d:`
37                        echo "ogMcastReceiverFile SOURCE:$PORTBASE TARGET:"CACHE" "$2.img" "
38                        ogMcastReceiverFile "$PORTBASE" "CACHE" "$2.img" || exit $?
39                        IMGFILE=$(ogGetPath "cache" "$2.img")
40            fi
41            ;;
42        TORRENT|torrent)
43                        echo "[9] copiando el fichero torrent Unicast \"$2\" del repositorio a caché local"
44                ogCopyFile "repo" "$2.img.torrent" "$IMGDIR" || exit $?
45                        echo "[10] descargando imagen torrent($6) \"$2\" del repositorio a caché local"
46                        ogTorrentStart "CACHE" "$2.img.torrent" "peer:60" || exit $?                   
47                        IMGFILE=$(ogGetPath "cache" "$2.img")           
48            ;;
49        *)  # Protocolo desconocido.
50            ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG REPO|CACHE imagen ndisco nparticion [ UNICAST|MULTICAST|TORRENT opciones ]"
51            exit $?
52    esac
53fi
54if [ -z "$IMGFILE" ]; then
55    ogRaiseError $OG_ERR_NOTFOUND "$1, $2"
56    exit $?
57fi
58PART=$(ogDiskToDev "$3" "$4") || exit $?
59echo "[20] $PROG: Origen=$IMGFILE, Destino=$PART"
60
61
62# Restaurar la imagen.
63echo "[25] Restaurar imagen"
64ogRestoreImage "$@" || exit $?
65# Restaurar tamaño.
66echo "[80] Extender sistema de archivos."
67ogExtendFs $3 $4
68# Cambiar nombre en sistemas Windows.
69if [ "$(ogGetOsType $3 $4)" = "Windows" ]; then
70    HOST=$(ogGetHostname)
71    HOST=${HOST:-"UNKNOWN"}
72    echo "[90] Cambiar nombre Windows a \"$HOST\"."
73    ogSetWindowsName $3 $4 "$HOST"
74fi
75TIME=$[SECONDS-TIME1]
76echo "[100] Duración de la operación $[TIME/60]m $[TIME%60]s"
77
Note: See TracBrowser for help on using the repository browser.