Existen tres opciones:
- Esperar un tiempo y ejecutar un comando con el comando sleep
- Ejecutar un comando o lanzar un programa a una hora específica con el comando at
- Ejecutar un comando o lanzar un programa regularmente a determinada hora en forma mensual, semanal o diaria con cron.
Veamos el uso de cada uno de estos comandos.
Comando sleep
Este comando espera la cantidad de segundos pasados como parámetro. Podemos utilizarlo cuando deseemos ejecutar un proceso después de una cantidad de tiempo. Un ejemplo simple (pero sin utilidad) sería listar un directorio dentro de 60 segundos:
(sleep 60; ls /home/usuario ) &
Para cortar la ejecución presionar CTRL + c.
Comando at
At ejecuta un comando o programa a determinada hora determinado día. Su sintaxis es bastante sencilla.
Por ejemplo, si deseamos descargar determinado archivo a las 23:12, ejecutamos:
echo “wget http://www.eureka.com.ve/imagenes/Eureka-logo.png; | at 23:11
El comando que va entre comillas luego de echo es el que se ejecutará a la hora indicada. Si deseamos hacerlo a las 23:11, pero de mañana, ejecutamos:
echo “wget http://www.eureka.com.ve/imagenes/Eureka-logo.png; | at 23:11 tomorrow
El comando at soporta diferentes formatos de fecha/hora y también ofrece la posibilidad de leer los comandos a ejecutar de un archivo, para más información: man at
Cron y crontab
Este es más versátil que los anteriores. Cron ejecuta comandos y/o programas a determinados momentos de acuerdo a lo que cada usuario ha configurado en crontab (archivo en donde se guardan las tareas programadas). Es posible ejecutar programas en forma diaria, semana, mensual, etc. ¿Quieres tener un despertador que tenga como alarma tus mp3 favoritos? con cron puedes hacerlo.
Para agregar una tarea o modificar alguna, editamos el archivo crontab con el comando:
crontab -e
Abrirá el editor de textos Nano para modificar el archivo (para salir y guardar los cambios CTRL + X). Las entradas en el archivo siguen el siguiente formato:
Por ejemplo, deseamos ejecutar un script todos los días a las 23:30Hrs
30 23 * * * /home/usuario/mi_script.sh
Cada * significa “cualquiera”, es decir, se ejecutará a las 23:30 de cualquier día, cualquier mes y cualquier día de la semana.
Si deseamos ejecutar un script el día de navidad cada año:
00 00 25 12 * /home/usuario/saludo_navidad.sh
El 25 indica el día del mes y el 12 el mes del año, lo que daría 25 de Diciembre.
Si es que deseamos ejecutar un script todos los martes 13 a la 1am:
00 01 13 * 2 /home/usuario/script-martes-13.sh
El 13 indica el decimotercer día del mes, el * que le sigue indica que es cualquier mes y el 2 siguiente indica que se ejecute sólo los días martes (los días de la semana se numeran empezando con 1 para Lunes y terminando con 7 para domingo), así, si el 13 de enero cae jueves, no se ejecutará el script, pero si el 13 de abril cae martes, lanzará el script
Si es que deseamos tener Amarok como un despertador, empezando a tocar nuestra lista de reproducción de lunes a viernes a las 7am:
00 07 * * 1-5 amarok -p
Esto ejecutará el comando amarok -p (que le indica a Amarok que reproduzca nuestra lista actual) a las 07:00Hrs todos los días del mes, todos los meses y sólo de Lunes a Viernes (por eso el 1-5)
Para más información: man crontab
Cron y Crontab de una forma más amigable.
Algunos dirán: “Pero Linux es muy complicado, siempre usando la consola, en Windows yo hago esto en dos patadas…”. En estos casos, tenemos una amigable interfaz gráfica para Cron, en el caso de KDE, se llama KCron y la interfaz es bastante intuitiva. Para ejecutarlo, basta ir a Menú K / Sistema / KCron
Fuente: El Modem