Despabilando la MonoNeurona::Internet es de todos [Inicio] [Regresar]
Debian \ Editando el crontab
Debian
Editando el crontab

Este artículo ha sido consultado en 1,674 ocasiones.

Crontab es un programa que permite ejecutar otros programas o scripts en un lapso de tiempo y una periodicidad especificada por el usuario. Cada usuario del sistema posee un crontab personalizado y sólo el root puede modificar el crontab de otro usuario. Si se desea agregar un crontab es necesario logearse primero como ese usuario.

Un usuario sólo puede hacer uso de crontab si su nombre aparece en /etc/cron.allow. Si el archivo no existe el usuario puede usar crontab a menos que su nombre aparezca en /etc/cron.deny.

La sintaxis del archivo crontab es muy clara y rígida. Hay seis campos por cada linea, cada campo está separado por un espacio. Los primeros cinco campos específican el momento preciso de ejecución; el sexto campo es el propio comando o script que se ejecutará. Los primeros cinco campos son:

*     *     *     *     *      /commando/a/ejecutar
-     -     -     -     -
|     |     |     |     |
|     |     |     |     +----- día de la semana (0 - 6) (dom = 0)
|     |     |     +------- mes (1 - 12)
|     |     +--------- día del mes (1 - 31)
|     +----------- hora (0 - 23)
+------------- minuto (0 - 59)
 

Para editar nuestro crontab sólo es necesario ejecutar:

$ crontab -e

Si es la primera vez que lo ejecutamos veremos un archivo en el editor VI, vacío. Agreguemos la siguiente línea:

45 19 * * * rm /home/newbie/tmp/*

esta línea indica que el contenido del directorio /home/newbie/tmp/ será borrado todos los días a las 7:45 PM. Salvemos el archivo y salgamos de VI con :wq, Verá el mensaje:

crontab:installing new crontab

que indica que una nueva tarea ha sido agregada al cron. Si ejecutamos el comando:

$ crontab -l

verá las tareas del crontab, en este caso sólo verá la recién tarea que agregó. La opción -r remueve el archivo crontab del usuario, no se usa muy seguido. Si desea usar otro editor y no VI, es necesario exportar la variable de ambiente EDITOR:

$ export EDITOR="nano"

(Si desea cambiar de editor de manera permamente, agregue esa línea al archivo $HOME/.bashrc). Típicamente, el cron envía un email de notificación al usuario propietario del cron, esto puede llegar a ser molesto, sobre todo si tenemos un cron que se ejecuta con mucha frecuencia. Para deshabilitar el envio del email agregue lo siguiente al final de cada línea del crontab:

>/dev/null 2>&1

Ejemplos

* * * * * /sbin/ping -c 1 192.168.0.1 >> /dev/null

Este crontab ejecuta el comando ping al equipo 192.168.0.1 cada minuto, de cada hora, de cada dia, de cada mes, es decir, hace un ping cada minuto.

0 20 * 10 1-5 /sbin/ping -c 1 192.168.0.1 >> /dev/null

El mismo comando, pero sólo se ejecuta los días laborables de la semana (Lun-Vie) a las 8:00 PM en punto y sólo el mes de octubre.

0 0 1,15,28 * * /home/mmonrdz/scripts/respaldar.py

Este crontab ejecuta un script de respaldo en python de lunes a domingo a la medianoche (0:00 AM) los días 1, 15 y 28 de cada mes. ¿Porqué 28 y no 30?, Por febrero ;-)

0,50 7,8 * * 1 /home/mmonrdz/scripts/dbcotiza.pl >/dev/null 2>&1

Ejecuta un script que actualiza la base de datos de cotizaciones todos los lunes a las 7:00 AM, 7:50 AM, 8:00 AM y 8:50 AM sin enviar el email de notificación.


Última actualización: 2007-04-29 10:57:00-05



ir arriba
The Queen is here Mozilla Firefox The Best DataBase CakePHP Framework CSS GNU Hacker