Cómo programar un trabajo Crontab para cada hora

A veces, realizar la misma tarea una y otra vez puede volverse tedioso. Para automatizar esta tarea en lugar de involucrar la asistencia de humanos, se programan cronjobs. A menudo, en Linux, el usuario tiene que ejecutar varios scripts al mismo tiempo, lo que se vuelve difícil de administrar para reducir la carga de trabajo del usuario para ejecutar la misma tarea repetidamente. Cron es una utilidad que nos permite programar las tareas según nuestras necesidades. Cron es una utilidad integrada proporcionada por Linux. No tenemos que instalarlo; simplemente programamos las tareas usando algunos comandos y archivos. Cronjob ahorra tiempo al usuario al permitirle administrar su tarea importante en lugar de repetir la misma tarea una y otra vez.

Si queremos enviar los emails a nuestros clientes o clientes cada semana en lugar de hacerlo manualmente, podemos automatizar esta tarea creando un cronjob. Es un tipo de utilidad que funciona silenciosamente en el backend pero que no implica ninguna interacción humana con él. Es un archivo de texto simple que incluye los comandos que se deben ejecutar y el momento en que se debe ejecutar.

Usos de Cronjob

Cronjob se usa para administrar las tareas de la base de datos, como obtener copias de seguridad diariamente y administrar el mantenimiento del sistema mediante la programación de un cronjob. También es útil para eliminar archivos de registro y limpiar los archivos de caché. Hay muchos otros trabajos que puede realizar el cronjob.

Sintaxis:

La siguiente es la sintaxis para definir un cronjob:

* * * * * comando

 
El asterisco se utiliza para indicar la hora en que se ejecuta el comando como el minuto que va de 0 a 59, una hora que va de 0 a 23 ya que maneja una notación de 24 horas y los días que van de 1 a 31, meses que van del 1 al 12, y el día de la semana del 0 al 6. El comando puede ser cualquier cosa que desee que su sistema automatice, como crear una copia de seguridad o eliminar archivos, etc.

Ejemplo: creación de un nuevo cronjob por hora

Vamos a crear un trabajo que se ejecute cada hora. Para eso, primero creamos un nuevo archivo en el directorio de inicio. No es necesario crear un archivo en el directorio de inicio. Podemos crearlo en cualquier parte del sistema. Pero para eso, debemos pasar la ruta junto con el nombre del archivo. Para crear un nuevo archivo Bash, escribimos el siguiente comando:

linux@linux-Virtualbox:~$ nano cronjob.sh

 
En este comando, creamos un archivo llamado «cronjob» con una extensión «.sh». Modificamos ese archivo usando el editor de texto nano escribiendo un comando de eco con un mensaje ficticio. Después de eso, guardamos y cerramos el archivo. Como podemos ver en la siguiente ilustración, creamos un nuevo archivo llamado “cronjob.sh”


Luego de la creación del archivo, ahora abrimos nuevamente la terminal donde escribimos el comando para iniciar el cronjob. Ahora ejecutamos el siguiente comando:

linux@linux-Virtualbox:~$ sudo systemctl start cron

 
Después de ejecutar el comando dado, solicita ingresar la contraseña. Después de ingresar la contraseña, inicia el cronjob. Una cosa para recordar es que no mostrará nada; simplemente sale del comando sin generar ningún error.

linux@linux-Virtualbox:~$ sudo systemctl start cron

 
Ahora, verifiquemos el estado de cron si está funcionando o no. Ejecutamos otro comando que muestra el estado del cronjob y si está activo o no.

linux@linux-Virtualbox:~$ sudo systemctl status cron

 
Después de ejecutar el comando anterior, obtenemos la salida con un estado activo.


Ahora, ejecutemos el archivo crontab usando el comando “crontab –e” en el que “-e” es la indicación de editar el archivo crontab en cualquiera de los editores. Editamos el archivo crontab usando el editor nano.

linux@linux-Virtualbox:~$ crontab –e

 
Al ejecutar esto, abrimos el archivo crontab en el que escribimos un comando para ejecutar el archivo cada hora. El primer cero indica que el archivo «cronjob.sh» se ejecuta después de cada hora que se guarda en la carpeta «inicio» del sistema denominada «linux».


Ahora, cerramos el archivo presionando la tecla “Ctrl+x”. Después de cerrarlo, obtenemos el resultado que indica la instalación de crontab como se muestra en el siguiente fragmento:

$ crontab- e

 

Verifiquemos ahora si el archivo se ejecuta o no. Para comprobarlo, simplemente escribimos el siguiente comando simple:

linux@linux-Virtualbox:~$ sudo grep –a “cronjob.sh” / var / log / syslog

 
En el comando mencionado anteriormente, grep es la forma abreviada de «impresión de expresión regular global» que se utiliza para buscar el texto o el comando que está escrito en cualquier archivo. En nuestro caso, queremos encontrar el comando cronjob que hemos escrito en el archivo “cronjob.sh”, donde “-a” indica la línea que se leerá del archivo “cronjob.sh”.

Después de ejecutar el comando proporcionado, obtenemos el siguiente resultado. Como podemos ver, primero le pide al usuario que ingrese la contraseña del sistema para verificar si somos administradores o no, ya que los cronjobs solo los administra el administrador. En Linux, puede haber más de un administrador a la vez. Después de ingresar la contraseña, obtenemos esta salida en la que nuestro «cronjob.sh» se ejecuta tres veces el 14 de diciembre.

Conclusión

La realización repetida de la misma tarea puede ser ajetreada para un administrador. Entonces, para su automatización, se introduce cronjob. Hoy, nuestro enfoque principal está en el cronjob. Le presentamos el cronjob, cómo se programan los trabajos en el cronjob y cómo administrarlos. Explicamos el concepto de cronjob junto con un ejemplo en el que creamos un cronjob que se ejecuta después de cada hora. Para entenderlo mejor, puede crear su cronjob deseado.