El at, para mí ese gran olvidado
Parece mentira que después de estar usando linux durante 6 años pueda decir esto pero ... hasta hoy no sabía como se usaba el comando at
.
Cada vez que quería dejar algo para que se ejecutara a una determinada hora, ejecutaba un screen
y dentro del screen
escribía algo como sleep 2h;echo voquepachaaaaa
.
Hoy me ha tocado la tarea de hacer un mirror de Ubuntu en el servidor de crisol y como por la mañana la red se usa mucho puse un at
para que se ejecute a las 19:00 de hoy.
El comando que he ejecutado es:
echo "rsync -auz rsync://es.archive.ubuntu.com/ubuntu /var/www/ubuntu" | at 19:00
En 15 minutos veré si funciona o no.
El comando at
forma parte de un conjunto de comandos que sirven para controlar una especie de cola de procesos por realizar.
Los más importantes son at
para añadir tareas a la cola, atq
para ver la cola de tareas y atrm
para borrar tareas de la cola.
Su funcionamiento se me hace muy parecido al del comando lpr
.
Un ejemplillo puede ilustrar el comportamiento de los tres:
jmferrerm@yinyan:~$ echo "ls"|at 18:50
warning: commands will be executed using /bin/sh
job 5 at Wed Aug 30 18:50:00 2006
jmferrerm@yinyan:~$ atq
5 Wed Aug 30 18:50:00 2006 a jmferrerm
jmferrerm@yinyan:~$ atrm 5
Cannot find jobid 5
jmferrerm@yinyan:~$ atq
jmferrerm@yinyan:~$
Hala, todos a at-ar.
Actualización
Otra forma más interactiva:
amonsul:/etc# at now +5min
warning: commands will be executed using /bin/sh
at> /etc/init.d/local-firewall stop
at>
job 7 at Tue Oct 28 15:14:00 2008
amonsul:/etc# atq
7 Tue Oct 28 15:14:00 2008 a root
amonsul:/etc#