Programando tareas con el comando AT en GNU/Linux

Existen comandos en GNU/Linux que nos permiten programar tareas para que se ejecuten a determinada fecha y hora, estos comandos son “cron” y “at“, en este ocasion explicare como se usa el comando AT, aunque estas dos instrucciones hacen casi la misma funcion, tienen algunas diferencias, quizas la mas sobresaliente es la forma en la que se indica la periocidad con la que se repetira el JOB (tarea-trabajo) .

La sintaxis del comando at es sencilla: at [hora] [fecha], algunos ejemplos son:

at 20:00 // ejecuta la tarea a las 8:00 PM

at 13:56  11/11/2009 // el formato de fecha es MM/DD/AAAA tarea se ejecutara el 11 de noviembre de 2009

at 02:07  JUN 27 // ejecutara la tarea a esa hora el dia 27 de Junio

Igualmente el comando at reconoce algunas  palabras del Ingles asi que podemos hacer esto:

at midnight // se ejecutara la media noche

at now + 5 days // se ecutara dentro de 5 dias a esta hora

at 10:32 + 5 weeks // se ejecutara dentro de 5 semanas a las 10:32

at noon  // se ejecuta al medio dia

Despues de  dar la instruccion, si la hora  y fecha son correctas (por que no puedes poner fechas del pasado, o  un mes de 40 dias xD),  nos arrojara un prompt de at, en el debemos ingresar las tareas que  se van a ejecutar a la hora especificada, para dar un ejemplo imaginemos que estamos descargando una ISO de  4 gb, y tenemos demasiado sueño para esperar a que descargue  pero  obviamente no la vamos a cancelar, ademas de esto  somos muy obsesivos con la organizacion de nuetsro home entonces queremos que cuando se acabe la descarga nos copie la  imagen a nuestra carpeta de iso’s para  posteriormente borrarla,  y por ultimo deseamos apagar nuestra maquina.(se que es un ejemplo un poco increible, pero sirve para visualizar el modo de uso del comando).

Para resolver nuesta situacion hacemos lo siguiente:

at 04:00 // calculamos  mas o menos el tiempo en el que ya haya terminado la descarga

cp /home/usuario/Desktop/imagen.iso /home/usuario/isos  //copiamos la imagen hay q tener en cuenta que debemos conocer el nombre exacto de nuestra ISO  que esta descargando.

rm /home/usuario/Desktop/imagen.iso //borramos la imagen del Desktop

shutdown -h now //apagamos nuestro PC

por ultimo presionamos ctrl +D para terminar de ingresar las instrucciones que se van a ejecutar

Para listar las tareas que tenemos programadas  hacemos:

atq -> nos muestra las tareas programadas.

Retomando nuetsro ejemplo inverosimil  si nos dimos cuenta que la imagen ISO esta corrupta y  deseamos cancelar la tarea programada,  hacemos lo siguiente:

atq -> nos muestra la tarea programada con un numero de identificacion

atrm numero // para cancelar la tarea se usa el comando atrm con el numero de identificacion correspondiente a al JOB que se desea cancelar

Para ejecutar algun script  debemos usar el parametro -f y la direccion del script.

Ejecutar aplicaciones en modo grafico

Antes de terminar queria aclarar algunas cosas, como todos habran notado,  en todos los ejemplo he hablado de que se programa  comandos (tareas) o scripts que se ejecutan en la consola, pero si queremos que a determinada hora se ejecute alguna aplicacion grafica como firefox o amarok, debemos exportar la variable display para que se ejecute en nuestra pantalla, entonces  lo primero que se debe programar es  esto:

export DISPLAY=:0

Despues de exportar la variable, podemos lanzar la aplicacion grafica

Mas adelante, quizas  en la proxima entrada hablare sobre cron, un comando parecio pero mas potente,  un comando muy utilizado por los  administradores de servidores, o aquellas personas encargadas de hacer backups.

2 Comments