2012-07-02 19 views
5

Estoy tratando de crear algunos informes de planificación de capacidad y uno de los requisitos es tener información sobre el uso de memoria para algunos servidores Unix.Registrando datos VMStat en el archivo

Ahora mi conocimiento de Unix es muy bajo. Normalmente solo inicio sesión y ejecuto algunos scripts.

Pero para este informe necesito recopilar datos de VMStat y generar informes basados ​​en datos de semanas anteriores desglosados ​​por hora, que es un promedio de datos de Vmstat tomados cada 10 segundos.

Entonces, la primera pregunta: ¿el VMStat inicia sesión de forma predeterminada y, en caso afirmativo, a qué ubicación del servidor está la salida de datos?

Si no, ¿cómo puedo configurar esto?

Gracias

Respuesta

9

vmstat es un comando que se ejecuta.

Para generar de una semana de las estadísticas de memoria virtual espaciados a intervalos de diez segundos (menos el último) es 60,479 intervalos de 10 segundos

Así que el comando que desea es:

nohup vmstat 10 604879 > myvmstatfile.dat & 

Esta voluntad hacer un archivo muy grande myvmstatfile.dat

EDIT: RobKielty (el & pondrá esta tarea en segundo plano, la nohup evitará la tarea de Hangin g al cerrar la sesión del shell de comandos. Si ejecutó este comando, sería prudente controlar la partición de disco en la que se estaba escribiendo este archivo. Use df -h /path/to/directory/where/outputfile/resides para monitorear el uso de espacio en disco.)

No tengo idea de qué tiene que hacer con los datos, así que no puedo ayudarlo allí.

crear una entrada (crontab -e) como esto

0 0 * * 0 /path/to/my/vmstat_script.sh 

El archivo vmstat_script.sh contendrá los comandos de script bash el seguimiento.

#!/bin/bash 
# vmstat_script.sh 
vmstat 10 604879 > myvmstatfile.dat 
mv myvmstatfile.dat myvmstatfile.dat.`date +%Y-%m-%d` 

Esto creará un archivo por cada semana con un nombre como myvmstatfile.dat.2012-07-01

+0

@ Rob Kielty - ¿Por qué esta mirada a mí que tendrá una duración de 70, en lugar de 7 días (604.879 x 10 ÷ 60 ÷ 60 ÷ 24 = 70)? ¿Qué me estoy perdiendo? –

+0

@ MuhamedHuseinbašić Me dividiría por 10 en lugar de multiplicar por 10 –

+0

@RobKielty - Aún no lo entiendo. Esta línea: vmstat 10 604879 dice que salga una línea cada 10 segundos y que se detenga después de 604879 líneas. Entonces si para 1 línea necesitamos 10 segundos, para 604879 líneas necesitamos 604879 por 10 segundos. Eso significa que la secuencia de comandos se ejecutará durante 6048790 segundos, que es de aprox. igual a 70 días. ¿Cuál es mi error aquí? –

Cuestiones relacionadas