Programar tareas

Anuncio
Programar tareas
Tenemos dos mecanismos básicos para programar tareas: crontab y at. El primero nos permite
programar tareas que queremos repetir de forma periódica, y el segundo nos permite realizar una
tarea a una hora determinada pero sólo una vez. Veamos su funcionamiento.
Crontab: realizando tareas periódicas
El comando crontab nos permite programar tareas para realizarlas a ciertas horas, ciertos días de la
semana, del mes, del año, etc. Todo ello siguiendo una sintaxis muy sencilla. Con este comando,
cada usuario puede definir sus propias tareas programadas. Su sintaxis básica es la siguiente:
• crontab -l Mostrar las tareas programadas por el usuario.
• crontab -e Editar el fichero crontab. Con esto editaremos el fichero de configuración de
crontab de cada usuario para poder modificar las tareas programadas.
• crontab -r Eliminar el fichero crontab corriente.
• crontab -u <usuario> Aplicar una de las opciones anteriores para un usuario determinado.
Sólo root puede hacerlo.
Editando nuestro fichero crontab
Cuando hacemos un crontab -e procederemos a editar nuestro fichero crontab con el editor que
tengamos definido en las variables de entorno VISUAL o EDITOR; si no las tenemos definidas, se
utilizará el editor vi.
El fichero de crontab tiene una sintaxis específica que deberemos seguir. Introduciremos una línea
para cada tarea que queramos programar. Cada línea se compone de seis campos separados por
espacios o tabuladores; estos campos son, en orden: minuto, hora, día, mes, año, comando.
Siguiendo esto, podríamos tener un fichero como el siguiente (las líneas que comienzan por # son
comentarios y no afectan):
# Cada Navidad reproducir una melodía
0 0 25 12 * mpg123 ~/musica/feliz_navidad.mp3
# Hacer una copia de seguridad del directorio documentos cada
día a las 00:00
0 0 * * * tar -czf docs-`date -I`.tar.gz ~/documentos/
(recordad que el símbolo ~ es equivalente a $HOME, y a /home/usuario/)
A la hora de expresar los minutos, horas, días, meses y año, podemos utilizar listas: 3,23,43; rangos
de tiempo: 1-5; pasos: 2-6/2 (= 2,4,6); y * (cualquier valor).
Como se puede apreciar, esta sintaxis es bastante flexible, y nos permite programar casi cualquier
cosa. Además, podemos hacernos nuestros scripts y hacer que crontab los ejecute para tener tareas
programadas más complejas.
También disponemos de un fichero de crontab para el sistema. Es el fichero /etc/crontab, pero sólo
root puede modificarlo.
Para ver en más detalle como funciona este comando, podemos consultar las páginas del manual:
man crontab y man 5 crontab.
At: ejecutando tareas a cierta hora una sola vez
Este comando nos permite ejecutar tareas a una cierta hora solamente una vez. Para ello
utilizaremos el comando at <hora>. Por ejemplo:
$ at 5:30pm
o bien
$ at 17:30
Una vez hayamos ejecutado esto nos aparecerá el prompt de at para que introduzcamos nuestros
comandos o tareas que queramos que se ejecuten a esa hora, por ejemplo:
at> gmessage "Hora de irse!!"
Una vez hayamos terminado de introducir los comandos, presionaremos Control + D para salir de
at.
Podemos especificar la hora de siguientes maneras:
• now + <intervalo> Donde la sintaxis para el intervalo es: <n> (minutes|hours|days|weeks|
months). Por ejemplo podríamos hacer así para programar tareas para dentro de 3 horas: $
at now + 3 hours
• <hora><dia> Para especificar la fecha por completo. El parámetro <hora> es obligatorio.
Podemos ingresar un valores de la forma 1800,18:00,0600pm, o bien uno de los 3 valores
especiales: noon (mediodia), teatime (16:00) o midnight (00:00). El parámetro <dia> es
opcional y podemos especificarlo de las siguientes maneras: 12/23/2005 (notación
americana), 23.12.2005 (notación europea). Podemos omitir el año, pero entonces sólo
podemos usar la notación europea (por ejemplo: 23.12). También podemos especificar el
mes abreviado como: Dec 23 o bien como 23 Dec.
Además de esto, at también acepta las siguientes opciones:
• -l Para mostrar la lista de tareas que tenemos programadas.
• -d <num_tarea> Para eliminar la tarea que queramos. Cada tarea tiene asociado un número
que podemos ver con la opción anterior.
Estas son las principales características de at. Como siempre, para ampliar cualquier información
podemos consultar su página del man: man at.
Descargar