Cron es una utilidad que administra procesos en segundo plano o demonios de vez en cuando (por ejemplo, cada minuto, día, semana o mes). Cron funciona como un programador, por ejemplo, puede descargar archivos de Internet o descargar correos electrónicos a intervalos regulares, también puede usarlo para tareas más complejas como instalar actualizaciones. Originalmente, cron fue creado para UNIX por Ken Thompson, pero ahora puede usarlo en todos los sistemas similares a UNIX, ¡incluso en Linux! UNIX tiene otra utilidad para programar tareas llamada “at”, pero cron es mucho mejor. Hay dos formas de usar cron, la primera es a través de los directorios cron ubicados en /etc si abre una terminal y escribe el siguiente comando:$ ls /etc/cron* Obtendrá el siguiente resultado:
Ahora, puedes ver los siguientes directorios en la imagen:cron. diario, cron. hourly, cron.monthly, cron.weekly y cron.yearly. Estos directorios almacenan los scripts que debe ejecutar cron, según el nombre de cada directorio es la frecuencia de ejecución. Por ejemplo, los scripts almacenados en cron.hourly se ejecutarán cada hora.
Ahora, voy a escribir un script simple para hacer una copia de seguridad de un directorio y lo pondré en el cron. directorio por horas para ejecutar el script cada hora. Una cosa importante que debe considerar es proporcionar los permisos de ejecución al script, porque si no lo hace, cron no ejecutará el archivo.
El ejemplo del proceso para agregar un script a tareas cron utilizando los directorios cron globales:
Tengo un directorio y quiero hacer una copia de seguridad automática cada hora:
Escribí un script para hacer la copia de seguridad, usé nano pero puedes usar tu editor favorito:
Pruebo el script:
Copio el script en /etc/cron.hourly:
Doy los permisos de ejecución al script:
Todos los scripts deben comenzar con la línea #!/bin/sh porque indica el shell a usar. Usar cron a través de los directorios /etc/cron.* no es muy útil, así que explicaré la segunda forma de usar crontab.
Si recuerda el resultado cuando enumeré el contenido de /etc/cron*, verá el siguiente archivo:/etc/crontab
Puede programar tareas en el archivo crontab, pero primero debe aprender lo siguiente:
Si analiza el contenido del archivo crontab, puede identificar 7 campos en las líneas después de "# run-parts", me refiero a lo siguiente (la primera línea después de "# run parts"):
Campo1 | Campo2 | Campo3 | Campo4 | Campo5 | Campo6 | Campo7 |
01 | * | * | * | * | raíz | bien... |
minuto | hora | día del mes | mes | día de la semana |
01 | * | * | * | * |
minuto | 00 – 59 |
hora | 00 – 23 |
día del mes | 1 – 31 |
mes | 1 – 12 |
día de la semana | 1 – 7 (lunes:1, domingo:7) |
@reboot | Una vez después del arranque |
@anualmente | Una vez al año |
@anualmente | Igual que @anual |
@mensual | Una vez al mes |
@semanal | Una vez a la semana |
@diario | Diario |
@medianoche | Igual que @daily |
@por hora | Por hora |