1 | #!/bin/bash |
---|
2 | # Descripcion: Crea un test no destructivo de la libreria Disk.lib conficurandolo |
---|
3 | # para un cliente concreto. |
---|
4 | # Se ejecuta en el servidor y el test creado se utiliza en el cliente |
---|
5 | # Los datos los toma de la base de administración. |
---|
6 | # Uso: creaTestDisk1 NombreCliente |
---|
7 | # |
---|
8 | # Falta: la bd no tiene información de las particiones lógicas (el script sí esta preparado para ellas) |
---|
9 | # la bd no tiene datos del tamaño del disco |
---|
10 | |
---|
11 | |
---|
12 | # Variables. |
---|
13 | PROG=$(basename $0) |
---|
14 | OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"} |
---|
15 | SERVERCONF=$OPENGNSYS/etc/ogAdmServer.cfg |
---|
16 | TESTDIR="$OPENGNSYS/client/lib/engine/tests/NoModify" |
---|
17 | TESTFILE="$TESTDIR/Disk1-$1.shtest " |
---|
18 | # Control básico de errores. |
---|
19 | if [ $# -ne 1 ]; then |
---|
20 | echo "$PROG: Error de ejecución" |
---|
21 | echo "Formato: $PROG NOMBRE_PC" |
---|
22 | exit 1 |
---|
23 | fi |
---|
24 | |
---|
25 | # Obtener datos de acceso a la Base de datos. |
---|
26 | source $SERVERCONF |
---|
27 | |
---|
28 | # Comprobar si se recibe nombre de aula o de equipo. |
---|
29 | PARTICIONES=$(mysql -u "$USUARIO" -p"$PASSWORD" -D "$CATALOG" -N -e \ |
---|
30 | "SELECT ordenadores_particiones.numpar, tipospar.tipopar, ordenadores_particiones.tamano |
---|
31 | FROM tipospar INNER JOIN ordenadores_particiones INNER JOIN ordenadores |
---|
32 | WHERE tipospar.codpar=ordenadores_particiones.codpar |
---|
33 | AND ordenadores.idordenador=ordenadores_particiones.idordenador |
---|
34 | AND nombreordenador='$1' |
---|
35 | ORDER By ordenadores_particiones.numpar;") |
---|
36 | # Si la cadena esta vacia, error |
---|
37 | if [ -z "$PARTICIONES" ]; then |
---|
38 | echo "El equipo $1 no existe en la base de datos" |
---|
39 | exit 2 |
---|
40 | fi |
---|
41 | |
---|
42 | # Ejemplo para añadir partitiones lógicas |
---|
43 | #PARTICIONES="$PARTICIONES 5 LINUX-SWAP 1999999" |
---|
44 | PRI=$( echo ${PARTICIONES%%\ 5\ *}|awk '{print $2"_"$3" "$5"_"$6" "$8"_"$9" "$11"_"$12}' |sed s/\ _//g |sed s/\ //g) |
---|
45 | |
---|
46 | if $(echo $PARTICIONES |grep " 5 " >/dev/null); then |
---|
47 | LOG=$( echo ${PARTICIONES##*\ 5\ }|awk '{print $1"_"$2" "$4"_"$5" "$7"_"$8" "$10"_"$11" "}' |sed s/\ _//g |sed s/\ //g) |
---|
48 | else |
---|
49 | LOG="" |
---|
50 | fi |
---|
51 | AUX=$(echo $PARTICIONES| wc -w) |
---|
52 | let NUMPART=AUX/3 |
---|
53 | P1SIZE=$(echo $PARTICIONES|cut -d\ -f3) |
---|
54 | P1TYPE=$(echo $PARTICIONES|cut -d\ -f2) |
---|
55 | case "$P1TYPE" in |
---|
56 | EMPTY) P1ID=0 ;; |
---|
57 | FAT12) P1ID=1 ;; |
---|
58 | EXTENDED) P1ID=5 ;; |
---|
59 | FAT16) P1ID=6 ;; |
---|
60 | NTFS|EXFAT) P1ID=7 ;; |
---|
61 | FAT32) P1ID=b ;; |
---|
62 | HFAT12) P1ID=11 ;; |
---|
63 | HFAT16) P1ID=16 ;; |
---|
64 | HNTFS) P1ID=17 ;; |
---|
65 | HFAT32) P1ID=1b ;; |
---|
66 | LINUX-SWAP) P1ID=82 ;; |
---|
67 | EXT[234]|REISERFS|REISER4|XFS|JFS) |
---|
68 | P1ID=83 ;; |
---|
69 | LINUX-LVM) P1ID=8e ;; |
---|
70 | SOLARIS) P1ID=bf ;; |
---|
71 | CACHE) P1ID=ca ;; |
---|
72 | LINUX-RAP1ID) P1ID=fd ;; |
---|
73 | *) P1ID="" ;; |
---|
74 | esac |
---|
75 | |
---|
76 | cat > $TESTFILE << EOF |
---|
77 | Ejemplo de test funciones de particionado no destrutivo |
---|
78 | ======================================================= |
---|
79 | |
---|
80 | # Desmontamos antes de empezar |
---|
81 | $ ogUnmountAll 1 2>/dev/null |
---|
82 | |
---|
83 | $ ogUnmountCache 2>/dev/null |
---|
84 | |
---|
85 | # Cambio de formato |
---|
86 | |
---|
87 | $ ogDevToDisk /dev/sda |
---|
88 | 1 |
---|
89 | |
---|
90 | $ ogDevToDisk /dev/sda1 |
---|
91 | 1 1 |
---|
92 | |
---|
93 | $ ogDiskToDev |
---|
94 | /dev/sda |
---|
95 | |
---|
96 | $ ogDiskToDev 1 |
---|
97 | /dev/sda |
---|
98 | |
---|
99 | $ ogDiskToDev 1 1 |
---|
100 | /dev/sda1 |
---|
101 | |
---|
102 | $ ogTypeToId NTFS |
---|
103 | 7 |
---|
104 | |
---|
105 | $ ogTypeToId LINUX |
---|
106 | 83 |
---|
107 | |
---|
108 | $ ogTypeToId LINUX GPT |
---|
109 | 8300 |
---|
110 | |
---|
111 | |
---|
112 | # Tamaño de disco (cuando haya informacion en la base de datos) |
---|
113 | |
---|
114 | #$ ogGetDiskSize 1 |
---|
115 | #312571224 |
---|
116 | |
---|
117 | # Tamaño de la particion |
---|
118 | |
---|
119 | $ ogGetPartitionSize 1 1 |
---|
120 | $P1SIZE |
---|
121 | |
---|
122 | # Información de las particiones |
---|
123 | $ ogListPartitions 1 | tr : _ | sed s/EXT[234]/LINUX/g | sed s/\ //g |
---|
124 | $PRI$LOG |
---|
125 | $ ogListPrimaryPartitions 1 | tr : _ | sed s/EXT[234]/LINUX/g | sed s/\ //g |
---|
126 | $PRI |
---|
127 | |
---|
128 | $ ogListLogicalPartitions 1 | tr : _ | sed s/EXT[234]/LINUX/g |
---|
129 | $LOG |
---|
130 | |
---|
131 | $ ogGetPartitionsNumber |
---|
132 | $NUMPART |
---|
133 | |
---|
134 | # Partición activa |
---|
135 | |
---|
136 | $ ogSetPartitionActive 1 2 >/dev/null |
---|
137 | $ ogGetPartitionActive 1 |
---|
138 | 2 |
---|
139 | |
---|
140 | $ ogSetPartitionActive 1 1 >/dev/null |
---|
141 | $ ogGetPartitionActive 1 |
---|
142 | 1 |
---|
143 | |
---|
144 | |
---|
145 | # Tipo de particiones |
---|
146 | |
---|
147 | $ ogGetPartitionId 1 1 |
---|
148 | $P1ID |
---|
149 | |
---|
150 | |
---|
151 | # Montamos la cache al final |
---|
152 | $ ogMountCache >/dev/null 2>&1 |
---|
153 | |
---|
154 | |
---|
155 | EOF |
---|
156 | |
---|
157 | |
---|
158 | |
---|
159 | echo "Test creado en $TESTFILE" |
---|
160 | echo "Las particiones logicas hay que incluirlas a mano, porque no hay información de las mismas en la base de datos." |
---|