¿Querés saber hace cuántos días se encuentra corriendo de forma ininterrumpida un servidor de bases de datos MySQL? En este artículo presento tres formas diferentes de obtener el esta información.

Más allá de que es posible obtener el tiempo en ejecución (uptime) de un sistema operativo *nix utilizando el comando uptime, esto no siempre corresponde con el de los servicios que soporta el mismo. Es posible que desde el último inicio el servidor MySQL (por citar un ejemplo) haya sido reiniciado varias veces. Lo que significa que su uptime es diferente (menor) al del sistema operativo.

Para el caso particular de MySQL, existen al menos tres formas de conocer cuánto tiempo lleva en ejecución desde su último inicio. Es decir, cuál es su uptime.

La primera consiste en conectarse al motor de bases de datos con el cliente mysql y ejecutar la siguiente consulta:

show global status like 'uptime';

Por ejemplo:

root@linuxito:~# mysql -u root -p
Enter password:
mysql> show global status like 'uptime';
+---------------+--------+
| Variable_name | Value  |
+---------------+--------+
| Uptime        | 364573 |
+---------------+--------+
1 row in set (0.00 sec)

El resultado está expresado en segundos. De acuerdo a este ejemplo, el servidor ha estado 364573 segundos en ejecución de forma ininterrumpida, lo que equivale a más de 6076 minutos (más de 101 horas ó 4 días).

Otra alternativa para determinar el uptime de un servidor MySQL, consiste en utilizar el cliente mysqladmin. Cuando se consulta la versión del motor (mediante el subcomando version) éste muestra además otra información útil como el uptime, número de hilos en ejecución, y socket.

root@linuxito:~# mysqladmin -uroot -p version | grep -i uptime
Enter password:
Uptime:                 4 days 5 hours 15 min 23 sec

La salida de este comando es más amigable que la consulta anterior, ya que las unidades están expresadas en días, horas, minutos y segundos.

La tercera alternativa, la cual es válida para cualquier servicio o proceso en general, consiste en consultar al sistema operativo la fecha de creación del proceso. Para ello se debe utilizar la herramienta ps:

root@linuxito:~# ps -eo bsdstart,cmd | grep mysqld_safe
Aug 24 /bin/sh /usr/bin/mysqld_safe
 22:45 grep mysqld_safe

La salida de ps -eo bsdstart,cmd (o simplemente ps -ef) incluye la fecha de creación del proceso. Aunque no incluye el detalle de la hora exacta de creación del proceso. Sin embargo, es posible obtener mayor precisión si simplemente se consulta la fecha de creación del directorio correspondiente al PID dentro del directorio /proc. Tener en cuenta que dentro del sistema de archivos /proc (interfaz a las estructuras de datos del kernel Linux) existe un subdirectorio por cada proceso, cuyo nombre coincide con el PID del mismo.

root@linuxito:~# ps ax | grep mysqld_safe
 7874 ?        S      0:00 /bin/sh /usr/bin/mysqld_safe
13427 pts/0    S+     0:00 grep mysqld_safe
root@linuxito:~# ls -ld /proc/7874
dr-xr-xr-x 7 root root 0 Aug 24 07:51 /proc/7874

Se observa que la fecha de creación del directorio correspondiente al PID es el 24 de agosto a las 7:51.


Tal vez pueda interesarte


Compartí este artículo