2008-09-17 11 views
29

¿Cómo puedo obtener un historial de tiempos de actividad para mi cuadro de Debian? Después de reiniciar, no veo una opción para el comando uptime para imprimir un historial de tiempos de actividad. Si es importante, me gustaría utilizar estos tiempos de actividad para graficar una página en php para mostrar los tiempos de actividad de los servidores web entre las botas.historial de tiempo de actividad de linux

Actualización: No estoy seguro si está basado en un período de tiempo o si se reinicia por última vez al reiniciar, pero solo obtengo la marca de tiempo de inicio más reciente con el último comando. last -x tampoco devuelve ninguna información adicional. Parece una secuencia de comandos es mi mejor opción.

Actualización: Uptimed es la información que estoy buscando, no estoy seguro de cómo grep esa información en el código. Administrar mi propio script para un db suena como la mejor opción para una aplicación.

+0

+1, pero ... ¿Quién necesita la historia del tiempo de actividad en sistemas Debian? Aquí está el tiempo de actividad en una de mis cajas Debian: * # uptime 23:51:06 hasta 1067 días *:) (sí, ese servidor pronto alcanzará los 3 años de uptime ... Gosh, me encanta la estabilidad de Debian:) Y, curiosamente, me doy cuenta de que durante estos 3 años el reloj se movió un poco (lo solucionará enseguida) – TacticalCoder

+0

Puede registrar el tiempo de actividad en una base de datos o archivo cada 5 minutos e imprimirlo en su gráfico, de modo que si el servidor se reinicia, se puede ver el tiempo de actividad en el gráfico como un pico – nicudotro

Respuesta

24

Puede crear un script simple que ejecuta el tiempo de actividad y lo descarga a un archivo.

uptime >> uptime.log 

Luego configure un trabajo cron para ello.

1

No creo que esta información se guarde entre reinicios.

si se cierra correctamente, podría ejecutar un comando al apagar que ahorra el tiempo de actividad, de esa manera podría leerlo nuevamente después de iniciar una copia de seguridad.

18

el comando last le dará los tiempos de reinicio del sistema. Podría tomar la diferencia entre cada reinicio sucesivo y eso debería dar el tiempo de actividad de la máquina.

actualización

1800 INFORMATION respuesta es una mejor solución.

+1

Sin embargo, esto no tiene en cuenta las paradas. El reinicio del pseudo usuario solo aparece en último lugar cuando el sistema se reinicia. – freespace

+0

¿Eso incluiría reiniciar la cuenta también? – roo

1

Esta información no se guarda normalmente. Sin embargo, puede suscribirse a un servicio en línea que lo hará por usted. Usted sólo tiene que instalar un cliente que va a enviar su tiempo de actividad al servidor cada 5 minutos y el sitio le presentará un gráfico de los tiempos de actividad:

http://uptimes-project.org/

2

Esto no se almacena entre botas, pero es una The Uptimes Project opción de terceros para rastrearlo, con software para una variedad de plataformas.

Otra herramienta disponible en Debian es uptimed que rastrea los tiempos entre botas.

43

Instalar uptimed. Hace exactamente lo que quieres.

Editar:

Puedes incluir aparentemente en una página PHP con tanta facilidad como esta:

<? system("/usr/local/bin/uprecords -a -B"); ?> 

Examples - link broken?

+0

esta es la mejor y verdadera respuesta a esta pregunta. – aisbaa

+0

El segundo enlace está roto. – Bob

+0

Bueno, para ser justos, fue hace 7 años que respondí esta pregunta. No tengo forma de rastrear los ejemplos ahora lamentablemente –

2

me gustaría crear una tarea programada para ejecutarse en la resolución requerida (por ejemplo 10 minutos) ingresando lo siguiente [en una sola línea - Acabo de separarla para fines de formato] en su crontab (cron -l para listar, cron -e para editar).

0,10,20,30,40,50 * * * * 
    /bin/echo $(/bin/date +\%Y-\%m-\%d) $(/usr/bin/uptime) 
    >>/tmp/uptime.hist 2>&1 

Esto añade la fecha, la hora y el tiempo de actividad en el fichero de uptime.hist cada diez minutos mientras la máquina está en funcionamiento. A continuación, puede examinar este archivo manualmente para descubrir la información o escribir un script para procesarlo como mejor le parezca.

Cuando se reduce el tiempo de actividad, se ha reiniciado desde el registro anterior. Cuando hay grandes espacios entre líneas (es decir, más de los diez minutos esperados), la máquina ha estado inactiva durante ese tiempo.

+0

necesita escacpar los signos de porcentaje con barra invertida o cron los interpretará –

+0

Gracias, @Felipe, probado y actualizado. – paxdiablo

3

Trate de hacer esto:

last | grep reboot 
+0

eso es genial, ¿podría explicarnos un poco más cómo obtener tiempo de actividad desde el último comando? – aisbaa

6

según last página del manual:

los pseudo registros de reinicio usuario en cada vez que se reinicia el sistema. Por lo tanto, el último reinicio mostrará un registro de todos los reinicios desde que se creó el archivo de registro .

por lo última columna de #last reboot comando le da tiempo de actividad de la historia:

#last reboot 
reboot system boot **************** Sat Sep 21 03:31 - 08:27 (1+04:56) 
reboot system boot **************** Wed Aug 7 07:08 - 08:27 (46+01:19) 
0

Nagios puede hacer que incluso los muy bellos diagramas acerca de esto.

Cuestiones relacionadas