Copyright © 2005-2019 LinuxTotal.com.mx
Se concede permiso para copiar, distribuir y/o modificar este documento siempre y cuando se cite al autor y la fuente de linuxtotal.com.mx y según los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation.
Hay distintas maneras de establecer cuanto tiempo un sistema Linux lleva ejecutándose. Aunque pudiera parecer trivial, esto es importante desde el punto de vista de administración de servidores Linux. Es posible que se requiera determinar si hubo un fallo de energía, o si alguien por cualquier razón, reinició el sistema, quizás algún servicio o cron está reiniciando el servidor, etc. Saber como determinar cuando o cuanto tiempo lleva encendido el sistema, es pues, una tarea común como sysadmin. Veamos algunos métodos:
uptime
uptime
es el comando más utilizado para determinar rapidamente el tiempo que lleva en ejecucción el sistema:
# uptime 14:41:44 up 5:31, 4 users, load average: 0.18, 0.24, 0.42
En este caso, después de "up" (arriba) nos informa que son 5 horas con 31 minutos. Como se podrá observar también nos da la hora actual, usuarios conectados y la carga promedio de uso de los CPU(s). Informativo, pero si queremos determinar a que hora exacto inicio el sistema, tendríamos que hacer una resta de la hora actual con el tiempo "up", no muy intuitivo, asi que para eso tenemos la opción -s:
[root@sergiogo-pc ~]# uptime -s 2017-09-04 09:09:50
uptime
también tiene otra opción (no tiene muchas), la opción -p (pretty) que da la información de "up" un poco más entendible:
[root@sergiogo-pc ~]# uptime -p up 5 hours, 31 minutes
En un sistema con más tiempo (varios meses o más) encendido, las salidas serían como las siguientes:
$ uptime 19:52:26 up 116 days, 18:09, 12 users, load average: 0.02, 0.20, 0.19 $ uptime -p up 16 weeks, 4 days, 18 hours, 9 minutes $ uptime -s 2017-05-10 03:42:22
Nota: las opciones -s y -l están disponibles en la versión 3.3 y superior del comando uptime
. La versión se determina con la opción -V.
who
Con el comando who
y la opción -b es posible obtener también la fecha y la hora de inicio del sistema:
$ who -b system boot 2017-09-04 09:14
No es el punto de este artículo, pero ya que estamos aqui, la opción -r es útil para determinar el último cambio de runlevel o nivel de ejecucción del sistema:
[sergiogo@sergiogo-pc ~]$ who -r run-level 5 2017-09-04 09:12 [sergiogo@sergiogo-pc ~]$ who -br system boot 2017-09-04 09:14 run-level 5 2017-09-04 09:12
last
El comando last
despliega una lista de los últimos usuarios que se han logueado al servidor. Pero también muestra cuando fue reiniciado el sistema:
$ last sergio pts/3 :0 Mon Sep 4 13:26 still logged in sergio pts/0 :0 Mon Sep 4 09:13 still logged in sergio :0 :0 Mon Sep 4 09:12 still logged in (unknown :0 :0 Mon Sep 4 09:12 - 09:12 (00:00) reboot system boot 3.10.0-514.10.2. Mon Sep 4 09:14 - 15:50 (06:35) sergio pts/1 :0 Fri Sep 1 10:22 - 17:25 (07:03) user1 pts/0 :0 Fri Sep 1 10:04 - 17:39 (07:34) sergiogo :0 :0 Fri Sep 1 10:02 - 17:41 (07:38) (unknown :0 :0 Fri Sep 1 10:02 - 10:02 (00:00) reboot system boot 3.10.0-514.10.2. Fri Sep 1 10:05 - 15:50 (3+05:44) sergio pts/1 :0 Thu Aug 31 10:57 - 17:46 (06:49) sergio pts/0 :0 Thu Aug 31 09:25 - 17:47 (08:22) user2 :0 :0 Thu Aug 31 09:22 - 17:48 (08:26) (unknown :0 :0 Thu Aug 31 09:22 - 09:22 (00:00) reboot system boot 3.10.0-514.10.2. Thu Aug 31 09:25 - 17:49 (08:23) sergio pts/1 :0 Wed Aug 30 12:42 - 17:15 (04:33) sergio pts/0 :0 Wed Aug 30 09:08 - 17:18 (08:10) $ last reboot reboot system boot 3.10.0-514.10.2. Mon Sep 4 09:14 - 15:55 (06:40) reboot system boot 3.10.0-514.10.2. Fri Sep 1 10:05 - 15:55 (3+05:49) reboot system boot 3.10.0-514.10.2. Thu Aug 31 09:25 - 17:49 (08:23) reboot system boot 3.10.0-514.10.2. Wed Aug 30 09:11 - 17:19 (08:07) $ last reboot -F | head -4 reboot system boot 3.10.0-514.10.2. Mon Sep 4 09:14:56 2017 - Mon Sep 4 16:11:25 2017 (06:56) reboot system boot 3.10.0-514.10.2. Fri Sep 1 10:05:41 2017 - Mon Sep 4 16:11:25 2017 (3+06:05) reboot system boot 3.10.0-514.10.2. Thu Aug 31 09:25:37 2017 - Thu Aug 31 17:49:11 2017 (08:23) reboot system boot 3.10.0-514.10.2. Wed Aug 30 09:11:27 2017 - Wed Aug 30 17:19:20 2017 (08:07)
w
El comando w
muestra los usuarios conectados y lo que están haciendo, y también muestra, al igual que uptime
, de hecho, exactamente igual que uptime
muestra la hora actual, el tiempo up, usuarios conectados y carga del CPU(s)
$ w 16:32:57 up 7:23, 3 users, load average: 0.95, 1.11, 1.15 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT sergio :0 :0 09:12 ?xdm? 3:14m 0.25s gdm-session-worker [pam/gdm-password] sergio pts/0 :0 09:13 7:18m 0.02s 0.02s /bin/bash sergio pts/1 :0 09:44 1:00m 0.09s 1.52s /usr/bin/python /usr/bin/terminator
Si no deseas que w
muestre la primera línea de su salida, utiliza entonces la opción -h
Por último, este archivo contiene información de cuanto tiempo tiene el sistema encendido, desde el último reinicio (restart):
$ cat /proc/uptime 27320.94 95276.77
El primer número es el total de segundos que el sistema lleva encendido. El segundo es el total de segundos que el sistema ha estado en reposo.
¿Porque el segundo es mayor que el primero?, esto es muy común en equipos actuales con multicores. El segundo número sería el tiempo en segundos en reposo -acumulado- de todos los procesadores. Aqui lo importante es el primer número que representa el uptime o tiempo arriba del sistema en segundos.
Como se podrá deducir, /proc/uptime es la fuente de donde se obtiene la información de donde los comandos previos mostrados determinan el tiempo arriba del sistema. Es muy fácil utilizar un comando tipo awk
de donde se pueda personalizar un comando "uptime" propio:
# awk para personalizar la salida de /proc/uptime, $1 es el primer argumento de la salida, es decir los segundos transcurridos desde el inicio del sistema. $ awk '{print int($1/86400)" dias\n "int($1%86400/3600)" horas\n" int(($1%3600)/60)" minutos\n"int($1%60)" segundos"} ' /proc/uptime 8 dias 9 horas 14 minutos 59 segundos
Si encuentras útil la información que proveé LinuxTotal, considera realizar un donativo que estimule a seguir proporcionando contenido de calidad y utilidad. Gracias.
Dona a través de paypal::
O a través de bitcoins:
Sistemas Linux con gran cantidad de usuarios, como servidores de correo, servidores samba, etc., tarde o temprano tienen el proble....
Hay ocasiones que cuando busco un archivo dentro del listado de un directorio con varios archivos, usando ls, deseo ver solamente ....
Si ya has usado la línea de comandos o shell de Linux por un tiempo, seguramente entonces, el comando date ya te es familiar, lo ....
En SQL, 'Alter' es un comando de la categoría DDL (Data Definition Language) y como su nombre lo indica sirve para alterar objeto....
En casi todas las distribuciones de Linux se instala por defecto el excelente programa para manipulación de imágenes ImageMagick....
Hay múltiples maneras de cometer errores (algunos muy graves y desastrosos) cuando se administran servidores GNU/Linux, conócelo....
Hay distintas maneras de establecer cuanto tiempo un sistema Linux lleva ejecutándose o prendido. Conócelas en este tutorial.....
El directorio /proc es una bestia extraña. Realmente no existe, sin embargo puedes explorarlo. Sus archivos de tamaño 0 no son n....
En este tutorial sobre listas de control de acceso en squid, aprenderás lo básico de como configurarlas y establecerlas en la co....
El comando find de Linux es extremadamente potente. No hay nada mejor para hacer todo tipo de búsquedas de archivos y carpetas qu....