Saltar al contenido

Crontab en Linux y ejemplos útiles

La automatización es uno de los aspectos clave de cualquier sistema, ya sea un servidor físico o un servidor privado virtual (VPS). Si la automatización se configura correctamente, puede ahorrar cientos de valiosas horas de usuario y hacer que el flujo de trabajo general sea mucho más eficiente. Una de las principales herramientas para programar tareas es cron.

En este tutorial, cubriremos la sintaxis de Crontab, brindaremos una descripción general de las diferencias entre cron job, cron y crontab, y mostraremos algunos casos de uso útiles de cron jobs para un sistema operativo basado en Linux.

Crontab en Linux y ejemplos utiles

¿Qué es Crontab y Cron Job?

Respecto a los trabajos cron, cabe destacar tres términos:

Demonio cron (crond) o simplemente cron es un ejecutable que permite a los usuarios realizar tareas y ejecutarlas automáticamente en un momento específico.

trabajo cron es cualquier tarea que un usuario programa usando cron.

Formato y valores de Crontab

Para que el demonio cron comprenda las instrucciones correctamente, se debe utilizar la sintaxis crontab correcta. La sintaxis de crontab consta de cinco campos. Cada uno de ellos se puede rellenar con cualquiera de los valores que se muestran en la siguiente tabla:

CampoValores posibles
Minuto0-59
Hora0-23
Dia del mes1-31
Mes1-12
Dia de la semana0-6. 0 representa el domingo. En algunos sistemas, el valor 7 representa el domingo.
DominioOrden para ejecutar

Además de los posibles valores de crontab, es necesario memorizar algunos caracteres especiales:

SímboloSignificadoEjemplo
* (asterisco)Seleccionar todos los valores posibles de un campoPoner * en el campo hora para ejecutar la tarea cada hora
(comer)Se utiliza una coma para separar varios valores.0,3,5 en el campo dia de la semana hará que la tarea se ejecute el domingo y miércoles
– (mapa vial)Le permite definir un rango de valores.10-15 en el campo Dia del mes realizará la tarea del 10 al 15 del mes
/ (separador)Se utiliza un separador para dividir los valores.*/10 en el campo hora hará que la tarea se ejecute cada 10 horas
ISe utiliza en áreas de Dia del mes cualquier dia de la semana1L en el campo dia de la semana ejecutará la tarea el último lunes de un mes determinado
W.W se utiliza para determinar el día de la semana más cercano.0W en el campo Dia del mes hará que la tarea se ejecute el domingo más cercano de un mes determinado
# (número)Se utiliza para determinar la dia de la semana2#3 en el campo Dia del mes hará que la tarea se ejecute el tercer martes del mes
? (punto de interrogación)Se utiliza en áreas de Dia del mes Es dia de la semana? en el campo del día del mes leerá cómo ningún valor específico

¡Importante! Tenga en cuenta que todos los campos deben completarse al crear un trabajo cron. Si no desea especificar un campo, rellénelo con el símbolo * (asterisco).

Leer  Guía sobre la seguridad VPS: Tips + debilidades

Comandos crontab

Solo se utilizan unos pocos comandos cron en la línea de comandos, lo que facilita la creación, eliminación y administración de entradas cron:

  • crontab-e– Se utiliza para editar crontabs del sistema. Este comando creará un nuevo crontab si aún no se ha hecho.
  • crontab-l– Se utiliza para ver las entradas de crontab (trabajos cron) y mostrar el contenido del archivo crontab del sistema.
  • crontab-r– eliminará el archivo crontab actual.
  • crontab-yo– mostrará una advertencia antes de eliminar el crontab de un usuario. Se recomienda utilizarlo junto con el indicador. -r, convirtiéndolo en el indicador -risas.
1714982360 921 Crontab en Linux y ejemplos utiles

Cómo utilizar Crontab: ejemplos de sintaxis de Crontab

Primero, use el comando crontab para crear su primera entrada crontab:

crontab -e

Le pedirá que elija un editor de texto. Le recomendamos que utilice hermano mayorla primera opción en nuestro ejemplo:

Ejemplo de Crontab con nano editor

Luego, será dirigido al archivo crontab. Para agregar nuevas entradas, simplemente elija una nueva línea y continúe con el cronjob.

¡Importante! Tenga en cuenta que crontab utiliza la fecha y hora actuales del sistema, lo que significa que la zona horaria se comparte con el sistema raíz.

Programar un trabajo para un tiempo específico

Una de las formas más sencillas de probar cron es programar una tarea para una hora específica. Por ejemplo, el siguiente trabajo cron ejecutará nuestro guión.sh a la hora especificada, que es 15 de agosto en el 15:30.

30 08 10 06 * cat /helloworld.sh

Ver entradas de Crontab

Dado que todos los trabajos cron se almacenan en un archivo crontab, puede ver cuáles ya se están ejecutando. Para hacer esto, use el siguiente comando para mostrar el contenido de sus archivos crontab:

crontab -l
comando crontab para ver las entradas

Editar entradas de Crontab

Para modificar las entradas crontab existentes, utilice este comando:

crontab -e

Programe un trabajo para cada minuto

Es fácil programar tareas para que se ejecuten cada minuto. En el siguiente ejemplo, ordenaremos que el comando cat se ejecute periódicamente:

* * * * * cat /home/helloworld.sh
Programa una tarea cada minuto con el comando cat

Programe un trabajo en segundo plano todos los días

Para programar una tarea en segundo plano para que se ejecute todos los días, puede usar el comando cron @a diario:

@daily cat /home/helloworld.sh

Recuerde que el script se ejecutará todos los días a las 12 am.

Leer  Variables de entorno en Linux: cómo leerlas y configurarlas

Programe un trabajo para un horario específico

Puede programar un trabajo para un intervalo de tiempo específico. Por ejemplo, todos los días de la semana, incluidos los fines de semana, 08 a.m para 17:00. El resultado final sería el siguiente:

00 08-17 * * * cat /home/helloworld.sh

Aquí hay otro ejemplo del mismo cron, pero solo los fines de semana:

00 08-17 * * 6-0 cat /home/helloworld.sh

Programe un trabajo cron al comienzo de cada mes

Para programar un trabajo al comienzo de cada mes, puede utilizar el operador @por mes:

@monthly cat /home/helloworld.sh

Tenga en cuenta que esto realizará el trabajo en 12 p.m. el primer día de cada mes. De manera similar, existe un operador @Anual quien realizará el trabajo primer día todo el año.

Programe un trabajo más de una vez

Los usuarios pueden programar una tarea cron para que se ejecute más de una vez, por ejemplo, cinco veces al día. En el siguiente ejemplo, configuraremos un trabajo para ejecutarlo 12 p.m., 15:00, 5 p.m., 19:00 Es 21:00.

0 12,15,17,19,21 * * * cat /home/helloworld.sh

Ejecute un comando de Linux después de cada reinicio

De la misma manera que los operadores @a diario, @por mes Es @Anualbash también viene con un comando @reinicio. Los usuarios pueden usarlo para programar una tarea para que se ejecute cada vez que se reinicie el sistema:

@reboot cat /home/helloworld.sh

¿Dónde se encuentra el archivo Crontab?

Dependiendo del sistema operativo, crontab estará ubicado en tres ubicaciones diferentes:

  • Mac OS: /var/en/pestañas
  • Sistemas basados ​​en Debian: /var/spool/cron/crontabs/
  • Sistemas basados ​​en Red Hat: /var/spool/cron

Acciones adicionales de Crontab

Además de la funcionalidad actual, crontab también es capaz de realizar acciones adicionales, como crear un registro de ejecución cron o deshabilitar las notificaciones por correo electrónico. Consulte las secciones siguientes para obtener más información.

Crear un archivo de registro

La forma más sencilla de registrar todos los resultados de los trabajos cron es utilizar la siguiente lógica:

* * * * * cat /home/helloworld.sh >> /var/log/logs.log 2>&1

Este comando guardará todos los resultados de los trabajos cron en un archivo llamado registros.log

Desactivar correo electrónico

Dado que cron envía un correo electrónico al usuario después de cada trabajo, deshabilitar esta funcionalidad puede resultar beneficioso para evitar el spam. Simplemente agregue esta línea al final de su trabajo cron:

>/dev/null 2>&1

Entorno crontab

Crontab permite a sus usuarios configurar variables de entorno. Esto se puede hacer con el comando crontab-e anteriormente mencionada. Al definir variables, consulte la siguiente lista:

  • CAMINO: ruta predeterminada a crontab.
  • CAPARAZÓN: shell predeterminado.
  • NOMBRE DE REGISTRO: propietario de crontab. La información se toma del directorio. /etc/contraseña.
  • HOGAR: directorio de inicio del usuario. La información se toma del directorio. /etc/contraseña.

Conclusión

Los trabajos cron son una de las mejores formas de ejecutar tareas programadas para instancias virtuales y sistemas físicos Linux. Con los trabajos cron, los usuarios pueden programar múltiples tareas para su sistema. Por ejemplo, realizar el mantenimiento del sistema en un día específico o incluso programarlo para que se ejecute todos los días de la semana.

En este tutorial, cubrimos la mayoría de las operaciones de crontab. También proporcionamos algunos ejemplos prácticos que puede utilizar al crear un crontab.

Si tiene alguna pregunta o sugerencia sobre el uso de cron, no dude en dejarla en la sección de comentarios.

Compartir

Deja una respuesta