¿Cómo imprimo mi UUID del grupo de volúmenes lógicos en un archivo?

3

Estoy intentando automatizar la obtención del LVGUUID e imprimirlo como una cadena a un archivo de texto, o mejor canalizarlo en la terminal a otros comandos. Todo lo que puedo hacer ahora mismo es diskutil coreStorage list y luego copiar / pegar el UUID según sea necesario. ¿Hay una forma más rápida de hacer esto?

    
pregunta Christian 07.08.2017 - 19:36

1 respuesta

2

Nota: Esta respuesta es solo un ejemplo del código , ya que solo tengo un Core Storage Volume para probar, sin embargo, si hay más de uno, el comando awk Podría modificarse para acomodarse en consecuencia. Aunque sin la salida de varios Volúmenes de almacenamiento principales, no puedo dar un ejemplo.

Si es el Logical Volume Group UUID , puede usar el siguiente ejemplo:

$ lvguuid="$(diskutil coreStorage list | awk '/Logical Volume Group/{print $5}')"
$ echo "$lvguuid"
696AD841-1F53-4D33-9496-3E36D33AB270
$ 

En el comando awk , puede sustituir Logical Volume Group con Physical Volume , Logical Volume Family y cambiar $5 según corresponda. Según el orden de la cadena de búsqueda que se muestra en esta línea, será $5 , $4 , $5 .

Para Logical Volume , deberá usar regex , como en el siguiente ejemplo:

lvuuid="$(diskutil coreStorage list | awk '/Logical Volume [A-F0-9]{8}-/{print $4}')"

Comprensión de regex :

  • Logical Volume [A-F0-9]{8}-

    • Logical Volume coincide con los caracteres Logical Volume literalmente (distingue entre mayúsculas y minúsculas).
  • [A-F0-9]{8} : haga coincidir un solo carácter presente en la lista a continuación.

    • {8} Quantifier: coincide exactamente 8 veces.
    • A-F un solo carácter en el rango entre A (índice 65) y F (índice 70) (distingue entre mayúsculas y minúsculas).
    • 0-9 un solo carácter en el rango entre 0 (índice 48) y 9 (índice 57) (distingue entre mayúsculas y minúsculas).
    • - coincide con el carácter - literalmente (distingue entre mayúsculas y minúsculas).

Entonces, en mi ejemplo, awk coincide con Logical Volume 38712F52- y devuelve:

38712F52-5967-4A49-87D6-C66D4B199F28

Los ejemplos anteriores establecen una variable a la que se puede llamar desde la línea de comando o script , sin embargo, si determina cuál es el resultado. archivo , luego use el siguiente ejemplo:

diskutil coreStorage list | awk '/Logical Volume Group/{print $5}' > /path/to/filename

En mi sistema, aquí está la salida del comando diskutil coreStorage list en una unidad flash USB cifrada:

$ diskutil coreStorage list
CoreStorage logical volume groups (1 found)
|
+-- Logical Volume Group 696AD841-1F53-4D33-9496-3E36D33AB270
    =========================================================
    Name:         Encrypted
    Status:       Online
    Size:         15661490176 B (15.7 GB)
    Free Space:   16777216 B (16.8 MB)
    |
    +-< Physical Volume E0E76F6B-A4E2-466D-B8E5-D5977ECD0522
    |   ----------------------------------------------------
    |   Index:    0
    |   Disk:     disk3s2
    |   Status:   Online
    |   Size:     15661490176 B (15.7 GB)
    |
    +-> Logical Volume Family EAF4984B-94C8-49B6-BCC6-76A8724E04D2
        ----------------------------------------------------------
        Encryption Status:       Unlocked
        Encryption Type:         AES-XTS
        Conversion Status:       Complete
        Conversion Direction:    -none-
        Has Encrypted Extents:   Yes
        Fully Secure:            Yes
        Passphrase Required:     Yes
        |
        +-> Logical Volume 38712F52-5967-4A49-87D6-C66D4B199F28
            ---------------------------------------------------
            Disk:               disk4
            Status:             Online
            Size (Total):       15325941760 B (15.3 GB)
            Size (Converted):   -none-
            Revertible:         Yes (unlock and decryption required)
            LV Name:            Encrypted
            Volume Name:        Encrypted
            Content Hint:       Apple_HFS
$ 
    
respondido por el user3439894 07.08.2017 - 20:11

Lea otras preguntas en las etiquetas