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.
Muy buenas, os escribo para pediros ayuda sobre el comando at.
¿Sería posible programar la ejecución de un script y pasarle parámetros?
Muchas gracias por adelantado
Claro que si!!! en el ejemplo lanzamos el comando cp con paramertos