11 ejemplos de tareas de programación cron en Linux


En este artículo vamos a revisar y ver cómo podemos programar y ejecutar tareas en segundo plano automáticamente a intervalos regulares usando el comando Crontab. Tratar un trabajo frecuente de forma manual es una tarea abrumadora para el administrador del sistema. Dicho proceso se puede programar y ejecutar automáticamente en segundo plano sin intervención humana utilizando el demonio cron en Linux o un sistema operativo similar a Unix.

Por ejemplo, puede automatizar procesos como copias de seguridad, programar actualizaciones y sincronización de archivos y muchos más. Cron es un demonio para ejecutar tareas programadas. Cron se despierta cada minuto y verifica las tareas programadas en crontable. Crontab (CRON TABle) es una tabla donde podemos programar este tipo de tareas repetidas.

Sugerencias: 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 la adición de entradas en el archivo /etc/cron.deny.

El archivo Crontab consta de un comando por línea y tiene seis campos separados por espacio o tabulación. Los cinco campos iniciales representan el tiempo para ejecutar las tareas y el último campo es para el comando.

  1. Minuto (mantenga valores entre 0 y 59)
  2. Hora (mantenga los valores entre 0 y 23)
  3. Día del mes (mantenga los valores entre 1 y 31)
  4. Mes del año (mantenga los valores entre 1 y 12 o de enero a diciembre, puede usar las primeras tres letras del nombre de cada mes, es decir, enero o junio).
  5. 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).
  6. Comando

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

Para editar la entrada crontab, use la opción -e como se muestra a continuación. En el siguiente ejemplo, se abrirán trabajos de programación en el editor VI. Realice los cambios necesarios y deje de presionar las teclas: wq que guardan la configuración automáticamente.

# crontab -e

Para listar trabajos programados de un usuario en particular llamado tecmint usando la opción -u (Usuario) y -l (Lista).

# crontab -u tecmint -l

no crontab for tecmint

Nota: Solo el usuario root tiene privilegios completos para ver la entrada crontab de otros usuarios. El usuario normal no puede verlo otros.

Precaución: Crontab con el parámetro -r eliminará los trabajos programados completos sin la confirmación de crontab. Utilice la opción -i antes de eliminar el crontab del usuario.

# crontab -r

crontab con la opción -i le pedirá confirmación del usuario antes de eliminar el crontab del usuario.

# crontab -i -r

crontab: really delete root's crontab?

  1. Asterik (*): coincide con todos los valores del campo o con cualquier valor posible.
  2. Guión (-): para definir el rango.
  3. Barra oblicua (/): primer campo/10, que significa cada diez minutos o cada incremento del rango.
  4. Coma (,): para separar elementos.

El administrador del sistema puede usar el directorio cron predefinido como se muestra a continuación.

  1. /etc/cron.d
  2. /etc/cron.daily
  3. /etc/cron.hourly
  4. /etc/cron.monthly
  5. /etc/cron.weekly

Los siguientes trabajos eliminan los archivos y el directorio vacíos de/tmp a las 12:30 am todos los días. 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

Necesita reemplazar cinco campos del comando cron con una palabra clave si desea usar el mismo.

En el siguiente ejemplo, command1 y command2 se ejecutan diariamente.

# crontab -e

@daily <command1> && <command2>

Por defecto, cron envía correo a la cuenta de usuario que ejecuta cronjob. Si desea deshabilitarlo, 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.

[[email protected] ~]# crontab -e
* * * * * >/dev/null 2>&1

Conclusión: La automatización de tareas puede ayudarnos a realizar nuestra tarea de mejor manera, sin errores y de manera eficiente. Puede consultar la página del manual de crontab para obtener más información escribiendo el comando "man crontab" en su terminal.