#!/bin/bash #_______________________________________________________________________________________________________________________________ # # Formato de salida: # disk=Número de disco\tpar=Número de particion\tcod=Código de partición\tsfi=Sistema de ficheros\tsoi=Sistema instalado\ttam=Tamaño de la partición\n #_______________________________________________________________________________________________________________________________ # No registrar los errores. export DEBUG="no" ser=$(ogGetSerialNumber) cfg="" disks=$(ogDiskToDev | wc -w) for ((dsk=1; dsk<=$disks; dsk++)); do particiones=$(ogGetPartitionsNumber $dsk) particiones=${particiones:-0} # Tipo de tabla de particiones: 1=MSDOS, 2=GPT ptt=$(ogGetPartitionTableType $dsk) case "$ptt" in MSDOS) ptt=1 ;; GPT) ptt=2 ;; LVM) ptt=3 ;; ZPOOL) ptt=4 ;; *) ptt=0 ;; esac # Información de disco (partición 0) cfg="$cfg$dsk:0:$ptt:::$(ogGetDiskSize $dsk):0;" for ((par=1;par<=$particiones;par++)); do # Código del identificador de tipo de partición cod=$(ogGetPartitionId $dsk $par 2>/dev/null) # Tipo del sistema de ficheros fsi=$(getFsType $dsk $par 2>/dev/null) fsi=${fsi:-"EMPTY"} # Tamaño de la particón tam=$(ogGetPartitionSize $dsk $par 2>/dev/null) tam=${tam:-"0"} # Sistema operativo instalado case "$fsi" in ""|EMPTY|LINUX-SWAP|LINUX-LVM|ZVOL) soi=""; uso=0 ;; *) if [ -n "$(ogMount $dsk $par 2>/dev/null)" ]; then soi=$(getOsVersion $dsk $par 2>/dev/null | cut -f2 -d:) # Hacer un 2º intento para algunos casos especiales. [ -z "$soi" ] && soi=$(getOsVersion $dsk $par 2>/dev/null | cut -f2 -d:) # Sistema de archivos para datos (sistema operativo "DATA") [ -z "$soi" -a "$fsi" != "EMPTY" -a "$fsi" != "CACHE" ] && soi="DATA" # Obtener porcentaje de uso. uso=$(df $(ogGetMountPoint $dsk $par) | awk '{getline; printf "%d",$5}') uso=${uso:0} else soi=""; uso=0 fi ;; esac cfg="$cfg$dsk:$par:$cod:$fsi:$soi:$tam:$uso;" done done # Crear configuración por defecto para cliente sin disco. [ -z "$cfg" ] && cfg="1:0:0:::0;" # Guardar salida en fichero temporal. cfgfile=/tmp/getconfig echo "${ser:+$ser;}$cfg" > $cfgfile # Crear el menú por defecto a partir del fichero generado (no dar ninguna salida). generateMenuDefault &>/dev/null # Componer salida formateada. awk '{ n=split($0,sep,";"); for (i=1; i