Crontab (CRON TABle) es una herramienta en sistemas Linux y Unix que permite a los usuarios programar la ejecución automática de comandos y scripts en momentos específicos o a intervalos regulares. Crontab es especialmente útil para automatizar tareas de mantenimiento, copias de seguridad, actualizaciones y otras actividades que deben ejecutarse de forma recurrente.
El término «crontab» se refiere tanto al archivo de configuración que contiene las instrucciones para las tareas programadas como al comando que se utiliza para interactuar con estos archivos.
El archivo crontab contiene líneas que especifican las tareas programadas, y cada línea se denomina «entrada de crontab». Estas entradas tienen un formato específico que consta de seis campos:
- Minuto (0-59)
- Hora (0-23)
- Día del mes (1-31)
- Mes (1-12)
- Día de la semana (0-7, donde tanto el 0 como el 7 representan domingo)
- Comando o script a ejecutar
Por ejemplo, una entrada de crontab para ejecutar un script llamado «copiaseguridad.sh» todos los días a las 3:30 a.m. sería:
30 3 * * * /path/to/copiaseguridad.sh
Para trabajar con crontabs, se utiliza el comando «crontab» seguido de diferentes opciones. Algunas de las opciones más comunes incluyen:
crontab -e
: Editar el archivo crontab del usuario actual.crontab -l
: Mostrar el contenido del archivo crontab del usuario actual.crontab -r
: Eliminar el archivo crontab del usuario actual.
En resumen, el crontab de Linux es una herramienta que permite a los usuarios programar la ejecución automática de comandos y scripts en momentos específicos o a intervalos regulares, lo que facilita la automatización de tareas y la administración del sistema.
Agregar tareas a Crontab
Para agregar tareas al crontab en sistemas Linux y Unix, sigue estos pasos:
- Abre una terminal.
- Ejecuta el comando
crontab -e
para abrir el archivo crontab del usuario actual en el editor de texto predeterminado. Si es la primera vez que usas crontab, se te podría solicitar que elijas un editor de texto (como nano, vi o emacs).
crontab -e
- Agrega una nueva línea al archivo crontab con el formato siguiente:
[minuto] [hora] [día del mes] [mes] [día de la semana] [comando o ruta al script]
Por ejemplo, para ejecutar un script llamado mi_tarea.sh
todos los días a las 2:15 p.m., agrega la siguiente línea:
15 14 * * * /ruta/al/mi_tarea.sh
Aquí hay una descripción rápida de cada campo:
[minuto]
: Valores de 0 a 59.[hora]
: Valores de 0 a 23.[día del mes]
: Valores de 1 a 31.[mes]
: Valores de 1 a 12.[día de la semana]
: Valores de 0 a 7, donde tanto 0 como 7 representan el domingo.[comando o ruta al script]
: El comando o script que deseas ejecutar.
- Guarda los cambios y cierra el editor de texto. Esto actualizará automáticamente el archivo crontab del usuario y comenzará a ejecutar la tarea según la programación especificada.
Algunos consejos adicionales:
- Utiliza el carácter asterisco (*) como comodín para indicar «cualquier valor» en un campo específico.
- Si deseas ejecutar un comando o script cada X minutos u horas, usa el carácter de división (/). Por ejemplo, para ejecutar un comando cada 5 minutos, escribe
*/5
en el campo de minutos. - Para especificar múltiples valores en un campo, utiliza una coma (,). Por ejemplo, para ejecutar un comando los lunes y viernes, escribe
1,5
en el campo del día de la semana. - Si deseas especificar un rango de valores, utiliza un guion (-). Por ejemplo, para ejecutar un comando de lunes a viernes, escribe
1-5
en el campo del día de la semana.
Recuerda que las tareas en el crontab se ejecutan con los privilegios del usuario que las programó. Si necesitas ejecutar una tarea con privilegios de superusuario (root), considera utilizar el archivo /etc/crontab
o los archivos en el directorio /etc/cron.d/
en lugar del crontab personal del usuario.