Cron-&-crontab,-explicados

Si quieres programar tareas en Linux, debes conocer todos los datos de Cron & Crontab.

¿Qué son Cron & Crontab en Linux?

Programar tareas en el sistema operativo Linux ahora es más sencillo, y esto se debe al uso de Cron & Crontrab, pero para comprender mejor el tema es importante saber todos sus detalles y ¿qué significa cada uno?

¿Qué es Cron?

La palabra Cron proviene del griego Chronos, lo que se traduce como tiempo, su función en Linux es organizar y administrar todas las tareas o actividades que se encuentran en segundo plano, pero ejecutan procesos a intervalos muy regulares. Es decir, todas las acciones que deseas llevar a cabo en unos minutos, horas, semanas o meses.

Es muy similiar al conocido programador de tareas de Windows, que se encarga de realizar una actividad en el tiempo que tu programaste, pueden ser horas, días, semanas, e incluso hasta meses.

¿Cómo funciona Cron?

Cron también es conocido como el »demonio» , y se inicia de /etc/rc.d o también como, /etc/init.d; esto va a depender de la distribucación que tenga. Además, se lleva a cabo en el background, o lo que es conocido como segundo plano.

Por esta razón, se encarga de chequerar frecuentemente todas las tareas y actividades que se encuentran en la tabla de crontab /etc/contral, o en la de /var/spool/cron, buscando algunas tareas que aún no se han cumplido.

Lo mejor es que puedes añadir tus propios comandos, o los scripts para que algunos procesos se realicen de forma automática. Un ejemplo de esto, es cuando necesitas actualizar un sistema, o cuando requieres de respaldos.

¿Qué es Crontab?

Es el archivo de texto en donde todas las tareas que programas en Cron son guardadas y organizadas. La función principal es revisar las horas y fechas en las que se debe ejecutar cada comando o el script.

Debes saber que, cada uno de los usuarios tiene un contrab, y por lo tanto, cuando se trata de de un usuario root se hace referencia al /etc/contrab, mientras que en el otro caso sería usando solo el comando contrab.

Una de sus características es que ayuda a organizar todas las tareas con un sistema multiusuario. Es decir, que, si eres un usuario root o simple, puedes utilizarlo igualmente.

¿Cómo funciona Crontab?

La forma más sencilla de explicar el funcionaiento de Crotab es con un ejemplo. Automatizar la tarea de actualizar Linux es una de las más frecuentes.

Para comenzar con este proceso se debe crear un script, el mismo será conocido como »cron», debe ejecutar correctamente tidas las instrucciones que se le asignan, pero antes, es importante que realices diferentes pruebas e intentes de varias formas antes de incluirlo con el cron:

  • #!/bin/bash
  • #script (ejemplo de actualizacion)
  • #escoge la distribución
  • #debian-ubuntu
  • #apt-get update&apt-get -y upgrade
  • #fedora
  • #yum -y update
  • #Arch
  • #pacman –noconfirm -Syu

Si se trata de Ubuntu/Debian es important que sea eliminado el #, justo en donde se ubica la apt-get. Después debes guardar el script con el nombre de actualizacion.sh, y modificar los permisos para que se ejecute, colocando: chmod a+x ~/scripts/actualizacion.sh

Debes ejecutar el script para revisar que todo se lleve a cabo sin ningún problema. Asegúrate de que no exista ni un solo error, porque de lo contrario habrá fallas durante el proceso. Y, el último paso en este caso es agregar la tarea a contrab.

¿Cómo agregar tareas a crontab?

Ahora, es momento de comenzar a ejecutar la edición de crontab con »contrab-e», y debe verse de la siguiente forma: # m h dom mon dow user command. Cada una de esas letras o palabras, tiene un significado y lo mencionamos, a continuación:

  • m: Hace referencia a los minutos que tardará en ejecutarse el scrit, los valores varían desde a 59.
  • h: Significa la hora, el formato utilizado es el de 24 horas, y los valores abarcan desde el 0 hasta el 23.
  • dom: Es el día del mes.
  • dow: Hace referencia a los días de la semana, los valores van desde 0 a 7, en donde evidentemente el 7 significa domingo.
  • user: El nombre de usuario que está ejecutando el comando, bien sea root o cualquier otro.
  • command: Se refiere al comando o la ruta utilizada para el script.

Ejemplos de tareas de cron explicados

  • 15 10 * * * usuario/hombe/usuario/scripts/actualizar.sh. Se debe ejecutar el script actualizar.sh a las 10:15 a.m todos los días.
  • 15 22 * * * usuario/home/usuario/scripts/actualizar.sh. Este ejemplo de tarea, llevará a cabo el script específicamente a las 22:15 p.m. todos los días.
  • 00 10 * * 0 root apt-get -y update Usuario root. Específicamente se lleva a cabo el script los días domingos a las 10:00 a.m.
  • 45 10 * * sun root apt-get -y update. En este caso el usuario es root y va a ejecutar la actualización solo los días domingos, representados con »sun» a las 10:45 a.m.
  • 30 7 20 11 * usuario /home/usuario/scripts/actualizar.sh. El script se va a ejecutar el 20 de noviembre a las 7:30 a.m.
  • 30 7 11 11 sun usuario /home/usuario/scripts/pastel_con_velitas.sh. La tarea es que el 11 de noviembre a las 7:30 a.m, si es domingo el usuario debe fesjetar el sysadmin.
  • Es posible también utilizar algunos comando especiales, como: 30 17 * * 1,2,3,4,5. Lo que quiere decir que a las 5:30 p.m de lunea a viernes se debe ejecutar el script.
  • 00 12 1,15, 28 * *. Significa que, a las 12 del mediodía los primeros, quince y los 28 días de todos los meses se debe ejecutar.

Sin embargo, esto no es lo único que puede hacer Crontab, también controla algunos comandos que, para muchos usuarios, son más sencillos que los mencionados anteriormente, y son los siguientes:

  • @reboot: Es para ejecutar una vez al inicio.
  • @yearly: Solo debes ejecutar el script una vez al año 0 0 1 1 *.
  • @annually: Es utilizada de la misma forma que la anterior.
  • @monthly: Hace referencia de que el script solo se debe ejecutar un día al mes, el primer día específicamente 0 0 1 * *.
  • @weekly Semanal: Significa el primer minuto de la primera hora de la semana 0 0 * * 0».
  • @daily: Ejecuta el script todos los días a las 12:00 a.m 0 0 * * *.
  • @midnight: Tiene la misma función que el anterior.
  • @hourly: El script se debe ejecutar el primer minuto de cad ahora 0 * * * *.

Administrar trabajos en cron

  • crontab archivo: Se utiliza para reemplazar un arhivo que ya existe en contrab, con otro.
  • crontab -e: Es utilizado para editar un archivo contrab, y con cada línea nueva, se establece una tarea nueva.
  • contrab -I: Con esto puedes crear una lista de las tareas del usuario que se encuentran en contrab.
  • contrab -d: Funciona para borrar el contrab de un usuario.
  • contrab -c dir: Es para definir el directoriod y crontab de n usuario. Recuerda que, debe tener todos los permisos de escritura y de ejecución del usuario.
  • contrab -u usuario: Es un prefijo utilizado para lograr controlar el contrab de otro usuario: $ sudo crontab -l -u root; $ sudo crontab -e usuario2; #crontab -d -u usuario.

Por Redaccion