Estoy escribiendo un script que utiliza salt-cli (SaltStack), así como argumentos de línea de comando genéricos para producir una tabla simple basada en HTML que describe todas las especificaciones de hardware y versiones de software de nuestros servidores.
Es tan simple como parece, sin embargo, mi único desafío es eliminar las salidas de mis comandos para que puedan presentarse bien en una tabla (por ejemplo, una palabra/número en lugar de la salida completa).
Mi último desafío que aún tengo que eliminar de manera efectiva es la salida de un simple ‘df -Ph. Hasta ahora lo he reducido a esto:
'df -Ph /'
Mi salida:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vhfhuffu 50G 8.0G 39G 18% /
Me gustaría que solo muestre los disponibles para cada servidor, no puedo encontrar una manera confiable de hacer esto para cada servidor Unix.
Sergio Ballesta
tail
y cut
debería ser suficiente aquí:
df -Ph / | tail +2 | cut -f4 -w
debería darle el tamaño del sistema de archivos del sistema de archivos raíz.
-
@jto: Mi error. Olvidé controlar la página de manual de Linux real, y la opción -P es diferente en mi sistema BSD…
– Sergio Ballesta
3 de agosto de 2017 a las 8:23
Otra forma sencilla es combinar tail -n 1
para obtener la última línea y pasarla grep '{print $4}'. This will extract the
39G` valor que suena como lo desea, por ejemplo
$ df -Ph / | tail -n 1 | awk '{print $4}'
39G
Si es algún otro número que está tratando de sumasólo házmelo saber.
-
Terminé usando algo similar a este método: df -Ph / | grep / | awk ‘{ print $4}’, solo estoy luchando para ejecutar físicamente este comando ahora, ya que tengo que ejecutarlo a través de salt-cli, es decir, salt ‘*’ cmd.run ‘df -Ph / | grep / | awk ‘{ print $4}”, no le gusta el hecho de que el comando de impresión termine en ‘ así como la sintaxis salt-cli, ¿cómo puedo solucionar esto? @David C. Rankin
– jto
3 de agosto de 2017 a las 8:37
-
Estaba curioso. Esta es la primera vez que escucho de un
salt-cli
. ¿Es un nuevo shell del que no he oído hablar, o es más como una cosa de Windows PowerShell?–David C. Rankin
3 de agosto de 2017 a las 8:42
-
Es una herramienta de gestión de configuración y ejecución remota que tiene una función de línea de comandos muy parecida a aws-cli
– jto
3 de agosto de 2017 a las 8:44
-
La sintaxis es la siguiente: salt ‘
‘ cmd.run ‘ ‘ mi problema es que mi comando usa ‘ ‘ junto con la sintaxis salt-cli, por lo que no le gusta y arroja un error – jto
3 de agosto de 2017 a las 8:51
-
¿Ha intentado escapar de la cita (pero eso puede dar
awk
acidez. Buscaría en Google un poco y vería si aparece algo específico relacionado con la sal.–David C. Rankin
3 de agosto de 2017 a las 8:54
Puede extraer el valor de columna necesario usando --output
opción:
df -h --output=avail | tail -n +2
Terminé eligiendo esto debido a mi necesidad de ejecutar este comando desde un script a través de Salt que requiere ” alrededor de cmd.run
df -Ph / | grep / | awk ‘”‘”‘{ imprime $4}'”‘””
Feo, pero es lo único que funciona en un caso tan específico.
¿Cuál es exactamente la pregunta? solo extrae
39G
en el ejemplo anterior de resumen posibles diferentes sistemas de archivos? ¿Y cómo se relaciona esto con grep?– Sergio Ballesta
3 de agosto de 2017 a las 7:39
Debido a que necesito encontrar una manera de encontrar la suma de ‘Avail’ para cada máquina, estoy ejecutando este comando en 15 servidores. @SergeBallesta
– jto
3 de agosto de 2017 a las 7:49