Añadir nuevo comentario

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#