Un demonio en Linux llamado cron ejecuta procesos a intervalos regulares. Comprueba ciertas carpetas de su sistema para que los scripts se ejecuten en una serie de carpetas incluyendo /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, y /etc/cron.monthly. También existe un fichero llamado /etc/crontab.
Índice de contenidos
Colocación de scripts en carpetas Cron
Puede simplemente colocar scripts en las carpetas relevantes para que se ejecuten a intervalos regulares.
Por ejemplo, abra una ventana de terminal y ejecute el siguiente comando ls:
ls /etc/cron*
Verá la lista de programas o scripts que se ejecutan por hora, día, semana y mes.
El problema con estas carpetas es que son un poco vagas. Por ejemplo, daily significa que el script se ejecutará una vez al día pero usted no tiene control sobre el tiempo que el script se ejecutará durante ese día.
Ahí es donde entra el archivo crontab.
Al editar el archivo crontab puede obtener un script o programa para que se ejecute en la fecha y hora exactas que desea que se ejecute.
Permisos
El comando crontab requiere que un usuario tenga permisos para editar un archivo crontab. Básicamente hay dos archivos que se usan para administrar los permisos de crontab:
- /etc/cron.allow
- /etc/cron.deny
Si el archivo /etc/cron.allow existe, el usuario que desea editar el archivo crontab debe estar en ese archivo. Si el archivo cron.allow no existe pero hay un archivo /etc/cron.deny entonces el usuario no debe existir en ese archivo. Si ambos archivos existen, el archivo /etc/cron.allow anula el archivo /etc/cron.deny. Si no existe ninguno de los dos archivos, depende de la configuración del sistema si el usuario puede editar la pestaña crontab.
El usuario root siempre puede editar el archivo crontab. Puede usar el comando su para cambiar al usuario root o el comando sudo para ejecutar el comando crontab.
Edición del archivo Crontab
Cada usuario que tiene los permisos apropiados puede crear su propio archivo crontab. El comando cron básicamente busca todos los archivos crontab y los ejecuta en cada uno de ellos.
Para comprobar si tiene un archivo crontab, ejecute el siguiente comando:
crontab -l
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Si no tiene un archivo crontab aparecerá el mensaje «no crontab for «, de lo contrario se mostrará su archivo crontab (esta funcionalidad difiere de un sistema a otro, a veces no muestra nada en absoluto y otras veces muestra «no edite este archivo»).
Para crear o editar un archivo crontab ejecute el siguiente comando:
crontab -e>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
El archivo que se abre tiene mucha información pero la parte clave es el ejemplo justo antes del final de la sección de comentarios (los comentarios se indican con #).
# m h dom mon dow command
0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
>.
Hay 6 piezas de información que caben en cada línea del archivo crontab:
- El minuto del día en que el comando debe ejecutarse (m)
- La hora del día en que se ejecutará el comando (h)
- El día del mes en que se ejecutará el comando (dom)
- El mes en que se ejecutará el comando (mon)
- El día de la semana en que el comando debe ejecutarse (dow)
- El comando
Para cada elemento (excepto para el comando) puede especificar un carácter comodín. Mira el siguiente ejemplo de línea crontab:
30 18 * * * * tar -zcf /var/backups/home.tgz /home/
A los 30 minutos, 18 horas y cualquier día, mes y día de la semana, esta entrada de crontab comprime y tartea el directorio home a la carpeta /var/backups.
Para que una orden se ejecute cada 30 minutos después de cada hora, ejecute la siguiente orden:
30 * * * * * command
Para obtener un comando que se ejecute cada minuto después de las 6 p.m., ejecute el siguiente comando:
* 18 * * * command
Por lo tanto, debe tener cuidado al configurar sus comandos crontab.
Por ejemplo:
* * * 1 * command
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>»»»»»»»»»»»»»»»»»*)))
Este comando se ejecutará cada minuto de cada hora de cada día de cada semana de enero.
Para ejecutar un comando a las 5 de la mañana del 1 de enero, debe ejecutar el siguiente comando en el archivo crontab:
0 5 1 1 * command
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i)
Cómo quitar un archivo de Crontab
La mayoría de las veces no querrá eliminar el archivo crontab, pero es posible que desee eliminar algunas filas del archivo crontab.
Sin embargo, si desea eliminar el archivo crontab de su usuario, ejecute el siguiente comando:
crontab -r
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Una forma más segura de hacerlo es ejecutar el siguiente comando:
crontab -i
>
El sistema operativo pide verificación antes de eliminar el archivo crontab.