11 ejemplos de tareas de programación cron en Linux
En este artículo, revisaremos y veremos cómo podemos programar y ejecutar tareas de Linux en segundo plano automáticamente a intervalos regulares usando el comando Crontab.
Lidiar manualmente con un trabajo frecuente es una tarea desalentadora para los administradores de sistemas y dichas tareas se pueden programar y ejecutar automáticamente en segundo plano sin intervención humana utilizando cron daemon en Linux o en un sistema operativo tipo Unix.
Por ejemplo, puede automatizar la copia de seguridad del sistema Linux, programar actualizaciones y la sincronización de archivos, y mucho más, utilizando el demonio Cron, que se utiliza para ejecutar tareas programadas desde la línea de comandos. o utilice herramientas en línea para generar trabajos cron.
Cron se activa cada minuto y verifica las tareas programadas en forma contable: Crontab (CRON TABle) es una tabla donde podemos programar este tipo de tareas repetidas. .
Consejos: Cada usuario puede tener su propio crontab para crear, modificar y eliminar tareas. De forma predeterminada, cron está habilitado para los usuarios; sin embargo, podemos restringir a los usuarios agregando una entrada en el archivo /etc/cron.deny.
Crontab en Linux
El archivo Crontab consta de comandos por línea y tiene seis campos en realidad separados por espacios o tabulaciones. Los cinco campos iniciales representan el tiempo para ejecutar las tareas y el último campo es para el comando.
- Minuto (mantener valores entre 0-59)
- Hora (mantener valores entre 0-23)
- Día del mes (mantener valores entre 1-31)
- El mes del año (mantenga valores entre 1-12 o enero-dic; puede usar las primeras tres letras del nombre de cada mes, es decir, enero o junio .)
- Día de la semana (mantenga valores entre 0-6 o dom-sáb. Aquí también puede usar las primeras tres letras del nombre de cada día, es decir, domingo o miércoles . )
- Comando: la /ruta/al/comando o script que desea programar.
1. Listar entradas de Crontab
Enumere o administre la tarea con el comando crontab con la opción -l
para el usuario actual.
crontab -l
00 10 * * * /bin/ls >/ls.txt
2. Editar entradas de Crontab
Para editar la entrada de crontab, use -e
la opción que se muestra a continuación. El siguiente ejemplo abrirá trabajos programados en el editor VI. Realice los cambios necesarios y deje de presionar las teclas :wq
que guardan la configuración automáticamente.
crontab -e
3. Enumerar trabajos cron programados del usuario
Para enumerar los trabajos programados de un usuario en particular llamado tecmint usando la opción como -u
(Usuario) y -l
(Lista).
crontab -u tecmint -l
no crontab for tecmint
Nota: Sólo el usuario root tiene privilegios completos para ver las entradas crontab de otros usuarios. Los usuarios normales no pueden ver a los demás.
4. Eliminar la entrada de Crontab
Precaución: Crontab con -r
el parámetro eliminará los trabajos programados completos sin confirmación de Crontab. Utilice la opción -i
antes de eliminar el crontab del usuario.
crontab -r
5. Preguntar antes de eliminar Crontab
crontab con -i
la opción le solicitará la confirmación del usuario antes de eliminar el crontab del usuario.
crontab -i -r
crontab: really delete root's crontab?
6. Caracteres especiales permitidos (*, -, /, ?, #)
- Asterisco(*): coincide con todos los valores del campo o cualquier valor posible.
- Guión(-): para definir un rango.
- Barra (/): primer campo /10, que significa cada diez minutos o incremento de rango.
- La coma (,): para separar elementos.
7. Programación cron en todo el sistema
Un administrador del sistema puede utilizar el directorio cron predefinido como se muestra a continuación.
- /etc/cron.d
- /etc/cron.daily
- /etc/cron.horaly
- /etc/cron.mensual
- /etc/cron.semanal
8. Programe un trabajo para un tiempo específico
Los siguientes trabajos eliminan archivos y directorios vacíos de /tmp a las 12:30 diariamente. Debe mencionar el nombre de usuario para ejecutar el comando crontab. En el siguiente ejemplo, el usuario root está realizando un trabajo cron.
crontab -e
30 0 * * * root find /tmp -type f -empty -delete
9. Cadenas especiales para horario común
- @reboot
El comando se ejecutará cuando el sistema se reinicie.
- @daily
-
Una vez al día o puede usar @midnight.
- @weekly
Una vez por semana.
- @yearly
Una vez al año. También podemos usar la palabra clave @annually.
Debe reemplazar cinco campos del comando cron con palabras clave si desea utilizar los mismos.
10. Múltiples comandos con doble signo (&&)
En el siguiente ejemplo, comando1 y comando2 se ejecutan diariamente.
crontab -e
@daily <command1> && <command2>
11. Desactive las notificaciones por correo electrónico.
De forma predeterminada, cron envía correo a la cuenta de usuario que ejecuta cronjob. Si desea desactivarlo, agregue su trabajo cron similar al siguiente ejemplo. El uso de la opción >/dev/null 2>&1 al final del archivo redirigirá toda la salida de los resultados cron en /dev/null.
[root@tecmint ~]# crontab -e
* * * * * >/dev/null 2>&1
conclusión: La automatización de tareas puede ayudarnos a realizar nuestras tareas de mejor manera, sin errores y de manera eficiente. Puede consultar una página de manual de crontab para obtener más información escribiendo el comando 'man crontab' en su terminal.