Digamos que ejecuto un script con at
Linux (ejemplo a continuación) que sé que tomará varias horas, o tal vez incluso varios días. Estoy acostumbrado a at
enviar un correo electrónico con la salida del comando una vez que se completa, pero ¿y si quisiera echar un vistazo a la salida actual antes de que se complete? Supongamos también que ya he encontrado el guión y se olvidó de redirigir la salida usando tail
, tee
u otros métodos similares y no quiero detener el script. ¿Hay alguna forma de hacer esto?
drew@anubis:~$ at now
warning: commands will be executed using /bin/sh
at> ./myscript.sh
at> <EOT>
job 3 at Sat Jan 7 09:31:00 2017
tail -f
ese archivo?tail
y no quiero detenerlo.Respuestas:
Si el trabajo ha comenzado y tiene alguna forma de obtener el PID de ese trabajo, podría ver dónde
at
está guardando la salida:Como puede ver, la salida se guarda en un archivo temporal, que ahora puede verificar:
Necesita
sudo
porque el directorio que contiene no es accesible al mundo (al menos en Ubuntu 14.04):fuente
at
trabajo. Ni siquiera necesitas el PID. Simplemente puede ejecutarsudo ls /var/spool/cron/atspool
y debería, en teoría, ser el único archivo allí.Otra forma de determinar qué archivo de spool pertenece a su trabajo es obtener el número de trabajo
atq
.Convierta el número de trabajo a hexadecimal. por ejemplo, 38 (dec) = 26 (hex).
Su archivo se denominará letra de cola (el 99% del tiempo, es
a
) seguido de una identificación de trabajo hexadecimal de 5 dígitos (lo aprendí mirando el código fuente delat
comando).Entonces puedes ver el stdout
fuente