Es muy probable que todos hayan escuchado o utilizado en algún momento las tareas programadas de Windows, las cuales no son más que la configuración para que un archivo, programa o proceso, se ejecute en un tiempo determinado y bajo condiciones especificadas por nosotros los usuarios. Este mismo concepto aplica para Linux, sin embargo, el proceso no se realiza a través del entorno gráfico, para ello usamos la terminal. Por este motivo hoy traemos para ti la explicación de cron y crontab que son unos comandos esenciales para llevar a cabo estas tareas.
Índice de contenidos
Su nombre proviene de la expresión griega chronos y su significado es tiempo. Es uno de los demonios o “daemon” (proceso en segundo plano) más importantes y habituales en el sistema. Su ejecución comienza desde el primer instante de arranque.
Su función principal es encargarse de lanzar las tareas programadas en fechas específicas y de forma automática y repetitiva. La definición de las tareas se localiza en el archivo /etc/crontab. El funcionamiento es simple, verifica si existen tareas (jobs) para su ejecución de acuerdo al horario del sistema. Lo anterior nos lleva a resaltar que es importante mantener ajustada correctamente la zona horaria del sistema, pues de lo contrario no obtendremos los resultados esperados con cron.
De acuerdo a la distribución que estemos utilizando en Linux, se puede inicializar usando los directorios /etc/init.d o etc/rc.d/ yen cada minuto realiza un chequeo de los /etc/crontab o /var/spool/cron ubicando posibles ejecuciones pendientes.
Es tan simple como un archivo de texto. Si, aunque no lo parezca. Lo que lo hace especial es su contenido. Su contenido especifica una lista de todos los scripts a ser ejecutados por el sistema. Así como también especifica las fechas, horas y los permisos de ejecución delos mismos.
En Linux, generalmente cada usuario tiene su propio archivo crontab y el que está ubicado en el directorio etc, es propiedad del usuario root.
Para generar tu propio archivo (en caso de no ser usuario root) solo haces uso del comando:
[php] crontab [/php]Crontab es la forma más simple para administrar las tareas de cron en sistemas de tipo multiusuario, ya sea como usuario root o simple usuario de sistema.
A continuación, les dejo una pequeña ayuda con respecto a la definición del cron dentro del crontab, con un ejemplo de muestra. (Tiene unos # adelante para que lo pueden colocar al principio de su archivo crontab como comentario y así siempre lo tendrán a la mano ? )
# Ejemplo de definición de cron: # .---------------- minutos (0 - 59) # | .------------- horas (0 - 23) # | | .---------- días del mes (1 - 31) # | | | .------- meses (1 - 12) O jan,feb,mar,apr ... # | | | | .---- dias de la semana (0 - 6) (Sunday=0 or 7) # | | | | | # * * * * * USER COMMAND MAILTO="cron@localhost" SHELL=/bin/sh
Donde cada asterisco representa una fracción de tiempo que determina el momento de la ejecución, seguido del usuario bajo el cual se realizara la ejecución (ese usuario puede ser root o uno que tenga los permisos de ejecución asignados) y por último el comando a ejecutar.
Como ya has notado, el funcionamiento es muy simple. Para cerrar el tema, les mostrare los comandos básicos y esenciales para controlar y verificar el cron de nuestro sistema Linux.
Si lo que quieres es remplazar el archivo existente por uno definido por otro que tu escojas, utilizas el siguiente comando:
[php] crontab (nombre-archivo)[/php]Si queremos o requerimos modificar el archivo actual usamos el siguiente:
[php]crontab -e[/php]Para obtener la lista de todas las tareas que se encuentran configuradas en crontab, hacemos uso de:
[php]crontab -l[/php]Para eliminar el actual crontab del sistema, tenemos:
[php]crontab -d[/php]Puede interesarte leer: Guía rápida de comandos básicos para Ubuntu y Linux
Otra operación que podemos realizar es definir el directorio donde se almacenará el crontab. Es importante aclarar que debemos poseer permisos de ejecución en el directorio escogido, de lo contrario no funcionara. El comando para definirlo es el siguiente:
[php]crontab -c dir[/php]Y, por último, podemos hacer gestión sobre el crontab existente de otros usuarios pertenecientes al sistema.
[php]crontab -u usuario[/php]Como habrás visto, no resulta nada complicado la programación de tareas en Linux y con todos los puntos claros se puede realizar de una forma rápida.
Espero que les haya sido útil el artículo. ¡Puedes dejar en los comentarios tus inquietudes o cualquier buena práctica que tengas para la programación de tu cron en Linux! ?
SK Hynix anuncia la producción de sus memorias flash NAND más avanzadas hasta ahora, que…
Drift DRAIR200 es la silla ergonómica que estabas esperando si tu presupuesto es ajustado, pero…
Una nueva información sobre la RTX 5090 vuelve a encender las alarmas con respecto a…