Cron es una utilidad de línea de comandos eficaz y popular que se utiliza para programar una amplia gama de tareas en un momento específico sin la interacción del usuario. Las tareas programadas se conocen como trabajos cron, mientras que crontab es la lista del archivo que contiene los trabajos cron.
En este artículo, explicaremos con varios ejemplos de programas que puede editar y usar el archivo crontab para programar tareas en el sistema Debian 10.
Cron se puede utilizar para automatizar tareas en los siguientes escenarios:
- Ejecución de copias de seguridad programadas,
- Comprobación del espacio en disco en un intervalo específico,
- Ejecución de mantenimiento automático,
- Eliminar periódicamente archivos no deseados,
- Ejecutando diagnóstico de red
Sintaxis
Es más fácil trabajar con cron, una vez que comprenda su sintaxis. La sintaxis general para usar cron es:
* * * * / ruta / a / script.shCada uno de los campos corresponde a lo siguiente:
Minuto (0-59) Hora (0-24) Día_del_Mes (1-7) Mes_del_año (1-12)Comando Day_of_the_Week (0-6)
Instalación de Cron
Cron viene preinstalado en Debian 10. Sin embargo, si falta en su sistema, ejecute el siguiente comando para instalarlo:
$ sudo apt install cronVer crontab
Para ver el archivo crontab, use el siguiente comando:
$ crontab -lPara ver el archivo crontab de un usuario en particular, use el siguiente comando:
$ sudo crontab -u usuario -lEditar crontab
Para editar el archivo crontab del usuario actual:
$ crontab -ePara editar el archivo crontab de un usuario en particular:
$ sudo crontab -u usuarioSi está editando el archivo crontab por primera vez, se le pedirá que elija un editor:
Una vez que seleccione el editor, aparecerá la siguiente ventana.
Por ejemplo, desea ejecutar una secuencia de comandos de copia de seguridad llamada "copia de seguridad.sh ”ubicado en el directorio de documentos todos los días a las 2:00 am. Para hacerlo, deberá agregar la siguiente línea en su archivo crontab:
0 2 * * * / Documentos / copia de seguridad.sh
En la ventana anterior, puede agregar sus trabajos cron uno por uno. Una vez hecho esto, guarde y salga del archivo; luego, todos los trabajos cron se ejecutarán automáticamente en el intervalo especificado.
Quitar crontab
Para eliminar el archivo crontab, ingrese el siguiente comando en la Terminal:
$ crontab -rAhora veamos una serie de ejemplos de trabajos cron en una máquina Linux.
1. Ejecuta un trabajo cron cada minuto
Para ejecutar un trabajo cron cada minuto, agregue la siguiente línea en su archivo crontab:
* * * * * / ruta / a / script.sh2. Ejecuta un trabajo cron cada 10 minutos
Para programar un trabajo cron para que se ejecute cada 10 minutos, agregue la siguiente línea en su archivo crontab.
* / 10 * * * * / ruta / a / script.sh3. Ejecuta un trabajo cron en meses específicos
Para programar un trabajo cron para que se ejecute en meses específicos e.gramo. Marzo, agosto, diciembre, agregue el trabajo cron en su archivo crontab de la siguiente manera:
* * * enero, mayo, agosto * / ruta / a / script.sh4. Ejecuta un trabajo cron en días seleccionados
Si desea que su trabajo cron se ejecute en los días seleccionados, supongamos que el domingo y el viernes a las 5 p. M., Debería verse así.
0 17 * * sol, vie / ruta / a / script.sh5. Ejecuta un trabajo cron todos los días a una hora específica
Para programar un trabajo cron para que se ejecute diariamente a una hora específica, digamos a las 3 am, agregue esta línea en su archivo crontab.
0 3 * * * / ruta / a / script.sh6. Ejecuta un trabajo cron en un día específico
Para programar un trabajo cron para que se ejecute en un día específico, digamos todos los domingos, agregue esta línea en su archivo crontab.
0 0 * * SUN / ruta / a / script.shEl trabajo se ejecutará a las 00:00 todos los domingos.
7. Ejecute varias tareas en un solo trabajo cron
Para programar varias tareas en un solo trabajo cron, agregue todos los scripts en su archivo crontab separándolos con un punto y coma.
* * * * * / ruta / a / script1.sh; / ruta / a / script2.sh8. Ejecute un trabajo cron en cada día laborable
Para programar un trabajo cron para que se ejecute todos los días de la semana, de lunes a viernes, deberá agregar esta línea en su archivo crontab.
0 0 * * 1-5 / ruta / a / script.shEl trabajo se ejecutará a las 00:00 todos los días de la semana.
9. Ejecuta un trabajo cron dos veces al día
Para programar un trabajo para que se ejecute dos veces al día e.gramo. a las 6 am y a las 3 pm, deberá agregar esta línea en su archivo crontab:
0 6,15 * * * / ruta / a / script.sh10. Ejecuta un trabajo cron cada hora
Para programar un trabajo cron para que se ejecute cada hora en el minuto 0, deberá agregar esta línea en su archivo crontab:
0 * * * * / ruta / a / script.shPor ejemplo, si la hora actual es a las 2 p.m., el trabajo se ejecutará a las 3:00 p.m., 4:00 p.m. y así sucesivamente.
11. Ejecute un trabajo cron después de cada 3 horas
Para programar un trabajo cron para que se ejecute cada 3 horas en el minuto 0, deberá agregar esta línea en su archivo crontab:
0 * / 3 * * * / ruta / a / script.shPor ejemplo, si la hora actual son las 2 p.m., el trabajo se ejecutará a las 5:00 p.m., 8:00 p.m. y así sucesivamente.
12. Ejecute el trabajo cron a las 4:00 p. M. El primer día de cada mes
Para programar un trabajo para que se ejecute el primer día de cada mes a las 4:00 pm, deberá agregar esta línea en su archivo crontab:
0 16 1 * * / ruta / a / script.shCadenas en Crontab
También puede utilizar las siguientes cadenas en lugar de los largos comandos repetitivos.
@ hourly- Ejecuta el trabajo cron cada hora i.mi. "0 * * * *"@ midnight- Ejecuta el trabajo cron todos los días i.mi. "0 0 * * *"
@ diario- igual que la medianoche
@ Weekly- Ejecuta el trabajo cron cada semana, i.mi. "0 0 * * 0"
@ Monthly- Ejecute el trabajo cron todos los meses i.mi. "0 0 1 * *"
@ anualmente- Ejecuta el trabajo cron todos los años i.mi. "0 0 1 1 *"
@ anualmente- igual que @anualmente
@ reboot: ejecuta el trabajo cron en cada arranque
Por ejemplo, para ejecutar el trabajo cron todos los días durante el primer minuto y la primera hora, agregue la siguiente línea:
@diaria / ruta / a / script.shPor ejemplo, para ejecutar el trabajo cron cada vez que se reinicia el servidor:
@reboot / ruta / a / script.shEso es todo lo que hay que hacer! En este artículo, hemos aprendido cómo automatizar varias tareas usando crontab en el sistema Debian. Al utilizar los ejemplos anteriores, puede programar cualquier tipo de trabajo para que se inicie sin la interacción del usuario.