
Estaba intentando analizar la salida slabtop -o
con awk para calcular la suma del tamaño de la caché, pero cuando la salida se canaliza, solo devuelve las primeras 23 líneas. Probé esto en Ubuntu y Centos.
# slabtop --version
slabtop from procps-ng 3.3.10
# slabtop -o | wc -l
23
¿Por qué solo devuelve las primeras 23 líneas cuando se canaliza el comando?
Respuesta1
slabtop
, incluso con -o
,siempre se limita a una pantalla llena de resultados. Normalmente lo hace preguntando al terminal cuál es su tamaño, pero cuando su salida estándar no es un terminal,se supone que la pantalla tiene 80 columnas por 24 filasy solo genera 23 filas (para evitar cualquier desplazamiento).
Esteya que ha sido arregladoy la solución está presente en procps-ng
3.3.13 y posteriores.
Respuesta2
Simplemente está codificado para funcionar de esta manera cuando la salida no es una terminal.
Si aún desea usar la redirección y obtener más filas, puede usarla script
para hacerle slabtop
creer que la salida se está imprimiendo en la terminal. Puede agregar stty
además cambiar los parámetros del pseudo-terminal y establecer su propio límite para las líneas de salida.
# slabtop -o | wc -l
23
# script -q -c "slabtop -o" /dev/null | wc -l
46
# script -q -c "stty rows 999; slabtop -o" /dev/null | wc -l
147
Alternativamente, puede obtener su información directamente desde /proc/slabinfo
el archivo, que también se utiliza por slabtop
sí mismo.