source: admin/Interface/getConfiguration

qndtest
Last change on this file was cad73ba, checked in by ramon <ramongomez@…>, 7 years ago

#711: Script de interfaz {{{getConfiguration: corregir error al guardar porcentaje de uso cuando el SF es inconsistente y hacer 2º intento de obtener versión de SO para algunos casos especiales.

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

  • Property mode set to 100755
File size: 2.8 KB
Line 
1#!/bin/bash
2
3#_______________________________________________________________________________________________________________________________
4#
5# Formato de salida:
6# 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
7#_______________________________________________________________________________________________________________________________
8
9
10# No registrar los errores.
11export DEBUG="no"
12
13ser=$(ogGetSerialNumber)
14cfg=""
15disks=$(ogDiskToDev | wc -w)
16for ((dsk=1; dsk<=$disks; dsk++)); do
17    particiones=$(ogGetPartitionsNumber $dsk)
18    particiones=${particiones:-0}
19    # Tipo de tabla de particiones: 1=MSDOS, 2=GPT
20    ptt=$(ogGetPartitionTableType $dsk)
21    case "$ptt" in
22        MSDOS)  ptt=1 ;; 
23        GPT)    ptt=2 ;; 
24        LVM)    ptt=3 ;; 
25        ZPOOL)  ptt=4 ;; 
26        *)      ptt=0 ;; 
27    esac
28    # Información de disco (partición 0)
29    cfg="$cfg$dsk:0:$ptt:::$(ogGetDiskSize $dsk):0;"
30    for ((par=1;par<=$particiones;par++)); do
31        # Código del identificador de tipo de partición
32        cod=$(ogGetPartitionId $dsk $par 2>/dev/null)
33        # Tipo del sistema de ficheros
34        fsi=$(getFsType $dsk $par 2>/dev/null)
35        fsi=${fsi:-"EMPTY"}
36        # Tamaño de la particón
37        tam=$(ogGetPartitionSize $dsk $par 2>/dev/null)
38        tam=${tam:-"0"}
39        # Sistema operativo instalado
40        case "$fsi" in
41                ""|EMPTY|LINUX-SWAP|LINUX-LVM|ZVOL)
42                        soi=""; uso=0 ;;
43                *)      if [ -n "$(ogMount $dsk $par 2>/dev/null)" ]; then
44                                soi=$(getOsVersion $dsk $par 2>/dev/null | cut -f2 -d:)
45                                # Hacer un 2º intento para algunos casos especiales.
46                                [ -z "$soi" ] && soi=$(getOsVersion $dsk $par 2>/dev/null | cut -f2 -d:)
47                                # Sistema de archivos para datos (sistema operativo "DATA")
48                                [ -z "$soi" -a "$fsi" != "EMPTY" -a "$fsi" != "CACHE" ] && soi="DATA"
49                                # Obtener porcentaje de uso.
50                                uso=$(df $(ogGetMountPoint $dsk $par) | awk '{getline; printf "%d",$5}')
51                                uso=${uso:0}
52                        else
53                                soi=""; uso=0
54                        fi
55                        ;;
56        esac
57        cfg="$cfg$dsk:$par:$cod:$fsi:$soi:$tam:$uso;"
58    done
59done
60
61# Crear configuración por defecto para cliente sin disco.
62[ -z "$cfg" ] && cfg="1:0:0:::0;"
63
64# Guardar salida en fichero temporal.
65cfgfile=/tmp/getconfig
66echo "${ser:+$ser;}$cfg" > $cfgfile
67
68# Crear el menú por defecto a partir del fichero generado (no dar ninguna salida).
69generateMenuDefault &>/dev/null
70
71# Componer salida formateada.
72awk '{  n=split($0,sep,";");
73        for (i=1; i<n; i++){
74            c=split (sep[i],dua,":");
75            if (i==1 && c==1)
76                printf ("ser=%s\n", dua[1]);
77            else
78                printf ("disk=%s\tpar=%s\tcpt=%s\tfsi=%s\tsoi=%s\ttam=%s\tuso=%s\n",
79                        dua[1],dua[2],dua[3],dua[4],dua[5],dua[6],dua[7]);
80            }
81     }' $cfgfile
82
83# Borramos marcas de arranque de Windows
84rm -f /mnt/*/ogboot.* /mnt/*/*/ogboot.*
85
86# Volver a registrar los errores.
87unset DEBUG
88
Note: See TracBrowser for help on using the repository browser.