El comando crontab nos permite añadir, eliminar o modificar los cron configurados para un usuario de una máquina Unix.
El modo de uso es el siguiente: crontab -<opciones>, a continuación os muestro unos ejemplos:
Editar los cron del usuario «alex»:
crontab -e -u alex
Listar los cron del usuario «alex»:
crontab -l -u alex
Eliminar los cron del usuario alex:
crontab -r -u alex
En todos estos casos, si omitimos «-u alex» accederemos a los cron del usuario con el que estemos identificados en el sistema. Una vez dentro de la gestión de crontab (si estamos editando con -e» visualizaremos todos los cron configurados para el usuario, ejemplo:
Nota: Automáticamente accederéis a la gestión de los cron con el editor que haya configurado por defecto, si queréis modificarlo revisad esta entrada: Cambiar editor crontab por defecto)
$ crontab -e -u alex
0 * * * * /usr/sbin/ntpdate hora.oxixares.com > /dev/null 0 20 * * * echo "Me ejecuto a las ocho en punto" > /dev/null
Crontab pone a nuestra disposición 6 campos cuyo significado es el siguiente (en orden, de izquierda a derecha) :
- Minuto (0-59)
- Hora (0-23)
- Día del mes (1-31)
- Mes del año (1-12)
- Día de la semana (0-7, 0 y 7 es Domingo)
- Comando/Script/tarea a ejecutar
En los 5 primeros campos podemos usar Wildcard (*), para especificar que se ejecutará en cualquiera de las opciones de ese campo (si son horas todas las horas, si son días todos los días, etc).
En el primer ejemplo que he mostrado antes, cada hora en punto ejecutamos la sincronización horaria y mandamos la salida a /dev/null/:
0 * * * * /usr/sbin/ntpdate hora.oxixares.com > /dev/null
En el segundo ejemplo, simplemente escribimos la frase a las 20:00 todos los días:
0 20 * * * echo "Me ejecuto a las ocho en punto" > /dev/null
Al comienzo del fichero podemos especificar una dirección de correo electrónico a la cual se envíen los informes de ejecución de crontabs:
MAILTO="test@test.com"
Con estas nociones básicas ya podéis trabajar de un modo eficaz gestionando cron mediante el comando crontab.
Muchas gracias, muy útil el post, me sirvió bastante, ahora una consulta, si quiero que mi comando se ejecute todos los días a media noche simplemente escribo 0 0 * * * (ruta)? favor espero me conteste.
gracias
Hola
Me gustaria saber como se hacen backup/restore en algún directorio de linux.