In this question alguien preguntó por formas de mostrar el uso del disco en Linux. Me gustaría dar un paso más en el cli-path ... ¿qué tal un guión de shell que toma el resultado de algo así como una respuesta razonable a la pregunta anterior y genera un gráfico/gráfico de él (salida en png archivo o algo así)? Esto puede ser un código demasiado poco para pedir en una pregunta regular, pero mi suposición es que alguien ya tiene una oneliner por ahí en alguna parte ...Generar gráficos/gráficos de uso del disco con herramientas CLI only en Linux
Respuesta
Recomendaría munin. Está diseñado exactamente para este tipo de cosas: graficar el uso de la CPU, el uso de la memoria, el uso del disco y demás. algo así como MRTG (pero MRTG tiene como objetivo principal graficar el tráfico del enrutador, graficando cualquier cosa menos el ancho de banda es muy hackish)
Escribir complementos de Munin es muy fácil (fue uno de los objetivos del proyecto). Se pueden escribir en casi cualquier cosa (script de shell, perl/python/ruby / etc, C, cualquier cosa que se pueda ejecutar y producir un resultado). El formato de salida del complemento es básicamente disc1usage.value 1234
. Y depurar los complementos es muy fácil (en comparación con MRTG)
Lo he configurado en mi computadora portátil para controlar el uso del disco, el uso de ancho de banda (extrayendo datos del panel de control de mi ISP, grafica mis dos contenedores de descarga) ", cargas y uso de grupos de noticias), promedio de carga y cantidad de procesos. Una vez que lo tengo instalado (actualmente un poco difícil en OS X, pero es trivial en Linux/FreeBSD), escribí un complemento en unos minutos y funcionó, ¡la primera vez!
Describiría cómo está configurado, ¡pero el sitio de Munin lo hará mucho mejor que yo!
Hay un ejemplo de instalación here
Algunas alternativas son nagios y cactus. También puede escribir algo similar usando rrdtool. Munin, MRTG y Cacti son básicamente sistemas mucho más fáciles de usar basados en esta herramienta de gráficos.
Si quieres algo muy, muy sencilla, se puede hacer ..
import os
import time
while True:
disc_usage = os.system("df -h/| awk '{print $3}'")
log = open("mylog.txt")
log.write(disc_usage + "\n")
log.close()
time.sleep(60*5)
Entonces ..
f = open("mylog.txt")
lines = f.readlines()
# Convert each line to a float number
lines = [float(cur_line) for cur_line in lines]
# Get the biggest and smallest
biggest = max(lines)
smallest = min(lines)
for cur_line in lines:
base = (cur_line - smallest) + 1 # make lowest value 1
normalised = base/(biggest - smallest) # normalise value between 0 and 1
line_length = int(round(normalised * 28)) # make a graph between 0 and 28 characters wide
print "#" * line_length
Eso hará un análisis sencillo del uso del disco. I Realmente realmente No recomiendo que use algo como esto. ¿Por qué? El archivo de registro se hará más grande, más grande y más grande. El gráfico se volverá progresivamente más lento para graficar. RRDTool utiliza un sistema de base de datos móvil para almacenar sus datos, por lo que el archivo nunca superará los 50-100 KB, y es siempre rápido de graficar ya que el archivo tiene una longitud fija.
En resumen. Si quiere algo para graficar fácilmente casi cualquier cosa, use munin. Si quieres algo más pequeño y autónomo, escribe algo con RRDTool.
supongo que hay un par de opciones:
Para una solución de CLI pura, use algo como gnuplot. Ver here por ejemplo uso. No he usado gnuplot desde mis días de estudiante :-)
No es realmente una solución CLI pura, pero descargue algo como JFreeChart y escriba una aplicación Java simple que lea stdin y cree su gráfico.
Espero que esto ayude.
Rodamos el nuestro en el trabajo usando RRDtool (el back end de almacenamiento de datos para herramientas como MRTG). Ejecutamos un script de Perl cada 5 minutos que toma una du por partición y lo coloca en una base de datos RRD y luego utiliza la función gráfica de RRD para construir gráficos. Me lleva un tiempo definir cómo configurar los archivos .rrd (por ejemplo, tuve que volver a aprender RPN para hacer algunos de los cálculos que quería hacer) pero si tiene algunos datos que desea graficar con el tiempo, La herramienta RRD es una buena apuesta.
Si algunos caracteres ASCII son "lo suficientemente gráficos" para usted, puedo recomendar ncdu. Es una herramienta de CLI interactiva muy agradable, que me ayuda mucho a bajar directorios grandes sin hacer cd bigdir; du -hs una y otra vez.
- 1. Limitaciones del uso de C++/CLI con NUnit
- 2. Memoria caché de escritura en disco desde Windows CLI
- 3. CLI pdf viewer for linux
- 4. uso extraño del operador condicional en Linux
- 5. Emular un disco duro en Linux
- 6. Java perfiles de uso de disco
- 7. Lectura de sectores de disco duro en C++ en Linux
- 8. Uso de disco de tabla SQLite
- 9. Uso del despacho de Grand Central en Linux
- 10. Obtener el uso de recursos de proceso de Linux (CPU, disco, red)
- 11. Cómo depurar cachés de E/S de disco en Linux
- 12. ¿Cómo generar Proxy manualmente sin CLI en Doctrine?
- 13. Comparación de herramientas de análisis de código estático en Linux?
- 14. Lectura/escritura del uso de I2C en Linux
- 15. Interpretar y ejecutar Javascript arbitrario en Linux CLI
- 16. Herramientas de Linux para inspeccionar Windows DLL
- 17. Herramientas necesarias para aprender ARM en la plataforma Linux x86
- 18. ¿Cómo instalar Android SDK en Linux utilizando solo CLI?
- 19. Generar trampas SNMP con PHP
- 20. ¿La forma correcta de generar eventos desde C++/CLI?
- 21. ¿Cómo controlo la CPU, la memoria y el uso del disco de la computadora en Java?
- 22. Ejemplo de uso de canalizaciones con nombre en Linux Bash
- 23. ¿Qué herramientas usas para desarrollar aplicaciones C++ en Linux?
- 24. Software de cancelación de sonido (interferencia destructiva) ¿herramientas en Linux?
- 25. Lista de archivos recursivamente en Linux CLI con ruta relativa al directorio actual
- 26. Herramientas de refactorización de código para C, ¿se pueden usar en GNU/Linux? Se prefiere FOSS
- 27. Uso de herramientas de diferencias externas con Mercurial
- 28. Muy simple Uso del patrón de decorador para generar números
- 29. Comparación de herramientas de desarrollo de GUI para Linux
- 30. Cómo revertir la tira de objcopy con only-keep-debug?
+1 ¡La mejora perfecta para el ocultamiento remoto! Me encanta esta herramienta, el uso súper rápido y la eliminación de flujos de trabajo también! – barrymac