source: admin/Interface/Configurar @ ed5611d

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 ed5611d was e034672, checked in by alonso <alonso@…>, 12 years ago

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

  • Property mode set to 100755
File size: 5.2 KB
Line 
1#!/bin/bash
2
3
4#Load engine configurator from engine.cfg file.
5#Carga el configurador del engine desde el fichero engine.cfg
6[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
7       
8# Clear temporary file used as log track by httpdlog
9# Limpia los ficheros temporales usados como log de seguimieincludento para httpdlog
10echo " " > $OGLOGSESSION; echo " " > $OGLOGCOMMAND; echo " " > ${OGLOGCOMMAND}.tmp
11       
12# Registro de inicio de ejecución
13#echo "[START Interface ] Run this command: $0 $*" | tee -a $OGLOGSESSION $OGLOGFILE
14echo "$MSG_INTERFACE_START $0 $*" | tee -a $OGLOGSESSION $OGLOGFILE
15       
16# Solo ejecutable por OpenGnSys Client.
17PATH=$PATH:$(dirname $0)
18PROG=$(basename $0)
19
20#____________________________________________________________________
21#
22# El parámetro $2 es el que aporta toda la información y el $1 se queda obsoleto
23# Formato de entrada:
24#               dis=Número de disco
25#               $=caracter de separación
26#               che=Vale 0 o 1
27#               $=caracter de separación
28#               $tch=tamaño cache
29#               @= caracter de separación
30#
31#   Y un numero indeterminado de cadenas del tipo siguuenteseparadas por el caracter '$':
32#               par=Número de particion#cod=Código de partición#sfi=Sistema de ficheros#tam=Tamaño de la partición#ope=Operación
33#____________________________________________________________________
34
35# Captura de parámetros
36param=$2;
37#param='dis=1$che=0$tch=70000000@par=1$cpt=NTFS$sfi=NTFS$tam=11000000$ope=0#'
38echo "Parametros recibidos"$param | tee -a $OGLOGSESSION $OGLOGFILE
39
40# Activa navegador para ver progreso
41coproc /opt/opengnsys/bin/browser -qws http://localhost/cgi-bin/httpd-log.sh
42
43# Separacion de los dos bloques separados por '@'
44declare -a TBPRM
45
46for ((i=1;i<3;i++));
47        do
48                TBPRM[$i]=$(echo $param | awk p=$i'{
49                                        n=split($0,sep,"!");
50                                        printf("%s",sep[p]);}')
51        done
52
53pparam=${TBPRM[1]}
54sparam=${TBPRM[2]}
55
56#echo "Parametros recibidos pparam"$pparam | tee -a $OGLOGSESSION $OGLOGFILE
57#echo "Parametros recibidos sparam"$sparam | tee -a $OGLOGSESSION $OGLOGFILE
58
59# Toma valores de disco y caché
60# Los valores están en las variables $dis: disco,$che: vale 1 0 cero, $tch: Tamaño de la cache"
61declare -a TBP
62for ((prm=1;prm<4;prm++));
63        do
64                TBPRM[$prm]=$(echo $pparam | awk -v p=$prm '{
65                                                        split($0,sep,"*");
66                                                        printf("%s",sep[p]);                                           
67                                                }')
68                eval ${TBPRM[$prm]}
69        done
70
71# Toma valores de tamaño y distribución de particiones
72declare -a TBP
73declare -a TBF
74
75particiones=$(echo $sparam | awk '{n=split($0,sep,"%");print n}')
76
77for ((par=1;par<$particiones;par++));
78        do
79                TBP[$par]=$(echo $sparam | awk -v p=$par '{
80                                                        n=split($0,sep,"%");
81                                                        split(sep[p],dua,"*");
82                                                        split(dua[1],prm,"=");
83                                                        par=prm[2];
84                                                        split(dua[2],prm,"=");
85                                                        cpt=prm[2];
86                                                        split(dua[3],prm,"=");
87                                                        sfi=prm[2];
88                                                        split(dua[4],prm,"=");
89                                                        tam=prm[2];                                                                                                                                                                     
90                                                        split(dua[5],prm,"=");
91                                                        ope=prm[2];                                                                     
92                                                        printf("%s %s %s %s %s",par,cpt,sfi,tam,ope);
93                                                }')
94        done
95       
96# Prepara cadena de particiones
97cP=""
98for ((par=1;par<$particiones;par++));
99        do
100                cfg=${TBP[$par]}
101                cP=$cP$(echo $cfg | awk '{
102                                                        n=split($0,prm," ");
103                                                        par=prm[1];
104                                                        cpt=prm[2];
105                                                        sfi=prm[3];
106                                                        tam=prm[4];                                                                                                                                                                     
107                                                        ope=prm[5];     
108                                                        printf("%s:%s ",cpt,tam);                                               
109                                                }')
110                                               
111                TBF[$par]=$(echo $cfg | awk '{
112                                                        n=split($0,prm," ");
113                                                        sfi=prm[3];
114                                                        ope=prm[5];             
115                                                        if(ope==1)
116                                                                printf("%s",sfi);
117                                                        else
118                                                                printf("EMPTY");       
119                                                }')                                             
120                                               
121        done   
122
123#____________________________________________________
124#
125# Proceso
126#____________________________________________________
127
128
129# Desmonta todas las particiones y la caché
130echo "Desmonta todas las particiones y la caché" | tee -a $OGLOGSESSION $OGLOGFILE
131ogUnmountCache
132ogUnmountAll $dis
133
134# Elimina la tabla de particiones
135echo "Elimina la tabla de particiones" | tee -a $OGLOGSESSION $OGLOGFILE
136ogDeletePartitionTable $dis 
137ogUpdatePartitionTable $dis | tee -a $OGLOGSESSION $OGLOGFILE   
138
139echo "Creando tabla de particiones tipo MSDOS" | tee -a $OGLOGSESSION $OGLOGFILE
140# Crea tabla de particiones MSDOS
141ogCreatePartitionTable $dis MSDOS
142
143echo "Creando entradas en la tabla de particiones $dis $cP" | tee -a $OGLOGSESSION $OGLOGFILE
144ogCreatePartitions $dis $cP  | tee -a $OGLOGSESSION $OGLOGFILE
145                       
146RETVAL=$?       
147if [ $RETVAL -ne 0 ]; then
148        kill $COPROC_PID
149  exit $RETVAL
150fi
151echo "Tabla de particiones creada" | tee -a $OGLOGSESSION $OGLOGFILE
152                       
153# Formatear particiones
154for ((par=1;par<$particiones;par++));
155        do
156        sfi=${TBF[$par]}
157        if [ "$sfi" != "EMPTY" ]; then
158                echo "Formateando disco $dis, particion $par con tipo $sfi" | tee -a $OGLOGSESSION $OGLOGFILE
159                ogFormatFs $dis $par $sfi | tee -a $OGLOGSESSION $OGLOGFILE
160                RETVAL=$?       
161                if [ $RETVAL -ne 0 ]; then
162                        kill $COPROC_PID
163                        exit $OG_ERR_PARTITION
164                fi
165        fi
166done   
167
168# Cuestión caché
169if [ "$che" == "1" ]; then
170        echo "Creando y actualizando la cache con el tamaño:$tch" | tee -a $OGLOGSESSION $OGLOGFILE
171        initCache $tch  &>/dev/null | tee -a $OGLOGSESSION $OGLOGFILE
172fi
173
174ogUpdatePartitionTable $dis | tee -a $OGLOGSESSION $OGLOGFILE   
175
176#___________________________________________________________________
177#
178# Retorno
179#___________________________________________________________________
180
181        echo "¡¡¡ El proceso ha terminado con exito !!!" | tee -a $OGLOGSESSION $OGLOGFILE
182        kill $COPROC_PID
183        exit 0
184
Note: See TracBrowser for help on using the repository browser.