Registro de la Jornada en Unix


Desde hace ya un mes se viene aplicando en España el Real Decreto-ley 8/2019 que obliga a todas las empresas a llevar un libro registro de las horas efectivamente trabajadas por todo el personal para evitar que los generosos trabajadores regalen las que se calcula que son en torno a tres millones de horas a los honrados empresarios.

Son estos honrados empresarios los que llevan quejándose de esta medida durante todo el mes acusando al gobierno de tomar medidas populistas y chapuceras sin el desarrollo reglamentario necesario. Además protestan por la gran complejidad que supone implantar sistemas de control horario.

La industria informática no ha tardado en dar solución a este problema inexistente, para que los pobres empresarios dejen de llorar, con apps para fichar y máquinas de control biométrico.

Afortunadamente nosotros somos usuarios de sistemas basados en Unix y sabemos que nada de eso es necesario porque conocemos el comando last cuyo existencia puede remontarse hasta mediados de los 70, cuando se empleaba el archivo /usr/adm/wtmp para almacenar datos de inicio y fin de sesión en servidores Unix. En la actualidad last forma parte del paquete util-linux en las distros Linux y se encarga de leer el archivo binario /var/log/wtmp. No ha cambiado gran cosa en 45 años…

Personalmente utilizo el siguiente one-liner para obtener el registro con un formato más ordenado y estético:

last $USER --time-format iso -s $(date "+%Y-%m-01" -d "-1 month") -t $(date "+%Y-%m-01") | cut -f 28-30 -d ' '

Cualquier administrador de sistemas puede obtener estos datos de todos los usuarios que se conecten al servidor central de la empresa para trabajar por SSH. El problema de este método es que las empresas no suelen trabajar así. Han abandonado el ecosistema de Unix y ahora tienen que enmendar su falta comprando cacharros o contratando apps de terceros que tienen acceso a sus datos. Ellos se lo pierden.