Copyright © 2005-2025 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:
Este es un pequeño y útil tip que te permitirá crear PDF's a partir de páginas del manual. Cuando deseas ver la ayuda de un co....
Si acostumbras trabajar en la línea de comandos de Linux, muy posiblemente uses el shell bash (Bourne Again Shell, derivado del b....
La más simple definición de un proceso podría ser que es una instancia de un programa en ejecución (corriendo). A los procesos....
SSH (Secure SHell), www.openssh.com, es la herramienta de conexión segura mas usada en el mundo Linux, no hay nada como ssh para ....
En ambientes donde varios usuarios usan uno o más sistemas GNU/Linux, es necesario otorgar distintos permisos o privilegios para ....
Hay ocasiones que cuando busco un archivo dentro del listado de un directorio con varios archivos, usando ls, deseo ver solamente ....
Una buena contraseña o password, todos lo sabemos, es esencial para dificultar la entrada a nuestro sistema, sobre todo si se es ....
Hay decenas de apliaciones para descargar archivos, la mayoría basadas en interfaces Web y de escritorio, y para todos los sistem....
....
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 ....