Sé que uptime
imprime el tiempo que una máquina ha estado en funcionamiento, pero ¿hay una manera más fácil (confiable) de obtener la fecha de inicio que la cuenta atrás de esta salida?
Intenté mirar alrededor /proc
, pero no encontré nada relevante. También hay una línea como esta en mi dmesg
:
[ 0.673492] rtc_cmos rtc_cmos: setting system clock to 2011-03-14 14:26:52 UTC (1300112812)
Pero me pregunto si este método es independiente de la distribución y la versión del kernel.
unreliable or hard
acercauptime
?uptime
devuelve una cadena como "hasta 13 días, 21:01", y tendrá que contarlo a partir de eso./proc/uptime
.Respuestas:
Encontré algunos comandos aquí . Prueba
who -b
olast reboot | head -1
.who
da fechas numéricas, mientras quelast reboot
devuelve nombres abreviados de día / mes.fuente
who -b | cut -d' ' -f13
fecha de devolución solamente (-f14 hora de devolución)last reboot
no me dio la fecha correcta!who -b
hizo.last reboot
también me dio una fecha incorrecta, wtmp parecía haber sido rotado el primer día del mesEsto consulta el tiempo de actividad del núcleo y lo muestra en la zona horaria local:
Tenga cuidado con otras opciones. El
last
comando dejará de funcionar tan pronto comowtmp
se haya girado. Elwho
comando depende de la disponibilidad e integridad deutmp
. Y/proc/1
podría tener la fecha actual en lugar de la fecha de inicio, e incluso podría no estar disponible en un sistema reforzado. Editar :dmesg
solo tiene un búfer de respaldo de longitud fija, por lo que también es irrealizable. Los registros del núcleo pueden estar en,/var/log
pero la mayoría de las distribuciones solo conservan 8 semanas de ellos.fuente
who -b
uno o dos minutos en mi sistema de tiempo de actividad de 210 días. Parece quewho -b
informa una marca de tiempo, mientras que este conteo se ve afectado de alguna manera por las desviaciones del reloj, incluso si estos se corrigen periódicamente por una carrerantpd
.date -d "`cut -f1 -d. /proc/uptime` seconds ago" -u
Me topé con esta pregunta mientras buscaba una forma de obtener un tiempo de arranque consistente y analizable , en lugar del tiempo desde el arranque que cambia en cada llamada.
Parece que
uptime -s
hará el truco en la mayoría de los sistemas Linux.fuente
uptime -s
salidas por ej2017-08-09 01:23:45
. Esto es lo mejor, al ser más simple. Este comando está incluido en el paquete "procps".uptime
en CentOS 6 (procps version 3.2.8
no parece) para apoyar esto, tristemente.uptime -s
no siempre devuelve resultados constantes: superuser.com/q/1247713/71144Encontré la
btime
línea/proc/stat
cuando hurgaba un pocoy después de una búsqueda rápida, encontré esta página: / proc / stat explicada , que describe los "Varios datos sobre la actividad del núcleo que están disponibles en el
/proc/stat
archivo".fuente
awk '/btime/{print $2}' /proc/stat
uptime -s
,who -b
o análisis/proc/uptime
ls -ld /proc/1
y variantes.No use ls -ld / proc / 1 para este propósito. A veces se actualiza después de s2disk o s2ram.
En mi caso,
who -b
dijo:arranque del sistema 2 de mayo 09:51
Mientras
ls -ld /proc/1
:dr-xr-xr-x 7 root root 0 3 de mayo 13:09 / proc / 1
ls -ld
para/proc
o/sys
parecen persistir después de la reanudación, pero es dependiente de la implementación, y puede cambiar en el futuro, así que no use estos métodos. Y si el reloj de su sistema está en hora local, no UTC , tienen un desplazamiento negativo.(Todavía no tengo el privilegio de comentar las respuestas, así que abrí una nueva respuesta. Lo siento).
EDITAR:
uptime -s
fue respondido por primera vez en esta respuesta por mikegreilingfuente
La forma más simple es mirar para ver cuándo / sbin / init comenzó (ese es siempre el primer proceso que se inicia después de que se carga el núcleo):
Así que puedo ver que mi máquina se inició a las 6 minutos hasta la medianoche del 27 de marzo de 2011.
Si desea usarlo en scripts, puede usar el
stat
comando en su lugar:Los
%Y
Especifica el tiempo desde el directorio fue cambiado por última vez (tiempo de creación de procesos) en segundos desde la época (1/1/70) y es una marca de tiempo Unix.fuente
En Linux
Parece que me da lo que necesito. La publicación anterior es extraña.
/proc/uptime
no contiene un valor de fecha; debería sustraerse de la hora actual. Quizás quiso decir:fuente
uptime -s
proporciona un valor de fechaBajo Bash, sin tuberías ni otros procesos; Solo texto:
(Solo reutiliza la
REPLY
variable predeterminada, pero puedes elegir lo que necesites)fuente
Esto parece robusto y te lo dará en formato UTC e ISO8601. (Elimine las dos últimas opciones para deshabilitar, respectivamente):
fuente
(Otra forma más de hacer esto, que es útil en ciertas circunstancias)
fuente
Mando:
Salida:
fuente
Claro y conciso con el comando tuptime :
fuente