Estoy tratando de descubrir un proceso que supervise las sesiones de los usuarios en un servidor remoto y les avise cuando estén inactivas demasiado tiempo, lo que con el comando de Linux w
es apropiado.
El problema es que w
usa 3 formatos diferentes para especificar el tiempo de inactividad de la sesión, y no puedo resolverlos correctamente. Una salida de w
podría verse así:
11:40:57 up 400 days, 10:46, 13 users, load average: 5.07, 5.10, 4.83
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
john pts/1 XX.XX.XX.XX Wed13 22:29m 0.13s 0.04s ssh master-db
june pts/2 XX.XX.XX.XX Wed13 46.00s 0.67s 0.13s -bash
jenn pts/4 XX.XX.XX.XX 11:13 27:47 4.16s 0.11s -bash
Como puede ver, IDLE tiene diferentes formatos para cada uno de los usuarios:
- "AA.BBs" obviamente significa que han pasado AA segundos y BB 1/100 de segundo (46 segundos en el caso de junio) desde la última vez que estuvo activa en la consola.
- "AA: BBm" probablemente significa que han pasado horas AA y minutos BB desde que John estuvo activo por última vez en su sesión.
- "AA: BB" es el formato que no puedo entender: ¿cuánto tiempo lleva Jennifer sin estar activa en su sesión?
w
son diferentes de las marcas de tiempo en los/dev/pts
archivos. alguna idea de por qué?watch
.La respuesta es 27 minutos y 47 segundos.
fuente