161 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			161 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #!/bin/bash
 | |
| # Descripcion: Crea un test no destructivo de la libreria Disk.lib conficurandolo
 | |
| #	para un cliente concreto.
 | |
| # 	Se ejecuta en el servidor y el test creado se utiliza en el cliente
 | |
| #	Los datos los toma de la base de administración. 
 | |
| # Uso: creaTestDisk1 NombreCliente
 | |
| #
 | |
| # Falta: la bd no tiene información de las particiones lógicas (el script sí esta preparado para ellas)
 | |
| #	la bd no tiene datos del tamaño del disco
 | |
| 
 | |
| 
 | |
| # Variables.
 | |
| PROG=$(basename $0)
 | |
| OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
 | |
| SERVERCONF=$OPENGNSYS/etc/ogAdmServer.cfg
 | |
| TESTDIR="$OPENGNSYS/client/lib/engine/tests/NoModify"
 | |
| TESTFILE="$TESTDIR/Disk1-$1.shtest "
 | |
| # Control básico de errores.
 | |
| if [ $# -ne 1 ]; then
 | |
|         echo "$PROG: Error de ejecución"
 | |
|         echo "Formato: $PROG NOMBRE_PC"
 | |
|         exit 1
 | |
| fi
 | |
| 
 | |
| # Obtener datos de acceso a la Base de datos.
 | |
| source $SERVERCONF
 | |
| 
 | |
| # Comprobar si se recibe nombre de aula o de equipo.
 | |
| PARTICIONES=$(mysql -u "$USUARIO" -p"$PASSWORD" -D "$CATALOG" -N -e \
 | |
|    "SELECT ordenadores_particiones.numpar, tipospar.tipopar, ordenadores_particiones.tamano 
 | |
| 	FROM tipospar INNER JOIN ordenadores_particiones INNER JOIN ordenadores 
 | |
| 	WHERE tipospar.codpar=ordenadores_particiones.codpar 
 | |
| 	AND ordenadores.idordenador=ordenadores_particiones.idordenador 
 | |
| 	AND nombreordenador='$1' 
 | |
| 	ORDER By ordenadores_particiones.numpar;")
 | |
| # Si la cadena esta vacia, error
 | |
| if [ -z "$PARTICIONES" ]; then
 | |
| 	echo "El equipo $1 no existe en la base de datos"
 | |
| 	exit 2
 | |
| fi
 | |
| 
 | |
| # Ejemplo para añadir partitiones lógicas
 | |
| #PARTICIONES="$PARTICIONES 5 LINUX-SWAP 1999999"
 | |
| PRI=$( echo ${PARTICIONES%%\ 5\ *}|awk '{print $2"_"$3" "$5"_"$6" "$8"_"$9" "$11"_"$12}' |sed s/\ _//g |sed s/\ //g)
 | |
| 
 | |
| if $(echo $PARTICIONES |grep " 5 " >/dev/null); then
 | |
|    LOG=$( echo ${PARTICIONES##*\ 5\ }|awk '{print $1"_"$2" "$4"_"$5" "$7"_"$8" "$10"_"$11" "}' |sed s/\ _//g |sed s/\ //g)
 | |
| else
 | |
|    LOG=""
 | |
| fi
 | |
| AUX=$(echo  $PARTICIONES| wc -w)
 | |
| let NUMPART=AUX/3
 | |
| P1SIZE=$(echo $PARTICIONES|cut -d\  -f3)
 | |
| P1TYPE=$(echo $PARTICIONES|cut -d\  -f2)
 | |
| case "$P1TYPE" in
 | |
|     EMPTY)      P1ID=0  ;;
 | |
|     FAT12)      P1ID=1  ;;
 | |
|     EXTENDED)   P1ID=5  ;;
 | |
|     FAT16)      P1ID=6  ;;
 | |
|     NTFS|EXFAT) P1ID=7  ;;
 | |
|     FAT32)      P1ID=b  ;;
 | |
|     HFAT12)     P1ID=11 ;;
 | |
|     HFAT16)     P1ID=16 ;;
 | |
|     HNTFS)      P1ID=17 ;;
 | |
|     HFAT32)     P1ID=1b ;;
 | |
|     LINUX-SWAP) P1ID=82 ;;
 | |
|     EXT[234]|REISERFS|REISER4|XFS|JFS)
 | |
|                 P1ID=83 ;;
 | |
|     LINUX-LVM)  P1ID=8e ;;
 | |
|     SOLARIS)    P1ID=bf ;;
 | |
|     CACHE)      P1ID=ca ;;
 | |
|     LINUX-RAP1ID) P1ID=fd ;;
 | |
|     *)          P1ID="" ;;
 | |
| esac
 | |
| 
 | |
| cat > $TESTFILE << EOF
 | |
| Ejemplo de test funciones de particionado no destrutivo
 | |
| =======================================================
 | |
| 
 | |
| # Desmontamos antes de empezar 
 | |
| $ ogUnmountAll 1 2>/dev/null
 | |
| 
 | |
| $ ogUnmountCache 2>/dev/null
 | |
| 
 | |
| # Cambio de formato
 | |
| 
 | |
| $ ogDevToDisk /dev/sda
 | |
| 1 
 | |
| 
 | |
| $ ogDevToDisk /dev/sda1
 | |
| 1 1
 | |
| 
 | |
| $ ogDiskToDev
 | |
| /dev/sda
 | |
| 
 | |
| $ ogDiskToDev 1
 | |
| /dev/sda
 | |
| 
 | |
| $ ogDiskToDev 1 1
 | |
| /dev/sda1
 | |
| 
 | |
| $ ogTypeToId NTFS
 | |
| 7
 | |
| 
 | |
| $ ogTypeToId LINUX
 | |
| 83
 | |
| 
 | |
| $ ogTypeToId LINUX GPT
 | |
| 8300
 | |
| 
 | |
| 
 | |
| # Tamaño de disco  (cuando haya informacion en la base de datos)
 | |
| 
 | |
| #$ ogGetDiskSize 1
 | |
| #312571224
 | |
| 
 | |
| # Tamaño de la particion
 | |
| 
 | |
| $ ogGetPartitionSize 1 1
 | |
| $P1SIZE
 | |
| 
 | |
| # Información de  las particiones
 | |
| $ ogListPartitions 1 | tr : _ | sed s/EXT[234]/LINUX/g | sed s/\ //g
 | |
| $PRI$LOG
 | |
| $ ogListPrimaryPartitions 1 | tr : _ | sed s/EXT[234]/LINUX/g | sed s/\ //g
 | |
| $PRI
 | |
| 
 | |
| $ ogListLogicalPartitions 1 | tr : _ | sed s/EXT[234]/LINUX/g
 | |
| $LOG
 | |
| 
 | |
| $ ogGetPartitionsNumber
 | |
| $NUMPART
 | |
| 
 | |
| # Partición activa
 | |
| 
 | |
| $ ogSetPartitionActive 1 2 >/dev/null
 | |
| $ ogGetPartitionActive 1
 | |
| 2
 | |
| 
 | |
| $ ogSetPartitionActive 1 1 >/dev/null
 | |
| $ ogGetPartitionActive 1
 | |
| 1
 | |
| 
 | |
| 
 | |
| # Tipo de particiones
 | |
| 
 | |
| $ ogGetPartitionId 1 1 
 | |
| $P1ID
 | |
| 
 | |
| 
 | |
| # Montamos la cache al final
 | |
| $ ogMountCache >/dev/null 2>&1
 | |
| 
 | |
| 
 | |
| EOF
 | |
| 
 | |
| 
 | |
| 
 | |
| echo "Test creado en $TESTFILE"
 | |
| echo "Las particiones logicas hay que incluirlas a mano, porque no hay información de las mismas en la base de datos."
 |