Guía para principiantes sobre el uso de Cron para programar tareas en Linux

Cron es un programador poderoso que le permite programar scripts o comandos y ejecutarlos regularmente. Es el latido que mantiene cronometrados varios programas y scripts personalizados. Puede programar secuencias de comandos para que se ejecuten en un archivo crontab. Aunque este archivo puede resultar intimidante durante la primera visualización, es fácil de entender con un poco de práctica.

En algunas distribuciones de Linux, como Arch Linux, cron no está instalado de forma predeterminada porque utiliza systemd como alternativa a cron. Además, hay muchas implementaciones de implementación de Cron, cada una con su propia forma de editar/programar trabajos de Cron. En este tutorial, nos centraremos en cronie, que es la configuración predeterminada en la mayoría de las distribuciones de Linux, como Ubuntu.

Guía para principiantes sobre el uso de Cron para programar tareas en Linux - Linux

Ver entradas para cr

Mostrar crontab Le permite ver las tareas programadas que se ejecutarán en su cuenta.

crontab -l
Guía para principiantes sobre el uso de Cron para programar tareas en Linux - Linux

También puede ver las tareas programadas para la cuenta raíz usando sudo.

sudo crontab -l

Editar entradas cron

Si nunca configuró un trabajo cron, ver este archivo mostrará un archivo vacío o un archivo con comentarios. Para agregar una entrada, deberá abrir el archivo crontab con la opción -e.

crontab -e

Las entradas seguirán crontab Siempre la misma estructura, lo que le permite inspeccionar las entradas en cualquier dispositivo, así como crearlas mediante programación.

La sintaxis básica para definir una entrada crontab es:

m h d mon dow command

m = minutos entre 0 y 59

h = hora entre 0 y 23

d = día del mes entre 1 y 31

lun = un mes entre 1 y 12

dow = Día de la semana entre 0 y 6. Cero en domingo.

Comando = comando para ejecutar.

Por ejemplo, debe ejecutar un comando regularmente para verificar si el servidor mysql funciona bien o no. Para hacer que el comando se ejecute cada hora, use la siguiente sintaxis:

0 * * * * mysqlcheck --all-databases --check-only-changed --silent

Esto significa que se ejecutará en punto cada hora. Si solo desea que se ejecute a la 1.42:XNUMX a. m. todos los días, el comando se convertiría en:

42 1 * * * mysqlcheck --all-databases --check-only-changed --silent

Además, las comas se pueden usar para varios elementos (p. ej., 1) y los guiones se pueden usar para rangos. El uso especial de un asterisco en lugar de un elemento en la expresión indica qué elemento ejecutar para todos los valores de campo. (Aparecerá un asterisco en el campo Hora para ejecutar cada hora de 3 a 5). El hashtag (#) en la línea indica un comentario (lo que significa que la línea de código no se ejecutará).

Finalmente, la barra diagonal indicará un valor de paso. Por ejemplo, cada cinco minutos se ingresará como */5 (desde el momento en que se guarda el crontab y se crea el trabajo cron). Si solo usa "5", la entrada solo se reproducirá en la marca de cinco minutos.

Por ejemplo esto:

34 3 * * 0 mysqlcheck --all-databases --check-only-changed --silent

34: minuto de operación entre 0 y 59

3: hora, entre 0 y 23

*: Las dos estrellas del medio indican todos los días (del 1 al 31) y todos los meses (del 1 al 12)

0: El cero final se refiere al domingo

Este trabajo se ejecutará a las 3:34 a. m. todos los meses, todos los domingos de la semana.

códigos cortos

Permitirte crontab Usando algunos códigos cortos para hacer que sus entradas cron sean más fáciles de leer.

@reiniciar - Ejecutar una vez, al inicio

@anual Ejecute una vez al año, “0 0 1 1 *”.

@anualmente - como anual

@mensual Ejecutar una vez al mes, “0 0 1 * *”

@semanalmente Ejecutar una vez por semana, “0 0 * * 0”

@diario Ejecutar una vez al día, “0 0 * * *”

@medianoche - mismo diario

@cada hora – Juega una vez cada hora, “0 * * * * *”

Por ejemplo:

@hourly mysqlcheck --all-databases --check-only-changed --silent

Editar entradas cron como otro usuario

Hay momentos en los que necesita agregar tarjetas crontab. Por ejemplo, para renovar automáticamente un certificado Let is Encrypt SSL, debe ejecutar el script de renovación raíz. Para editar tarjetas crontab, simplemente agregue sudo delante del comando:

sudo crontab -e

De manera similar, puede programar un trabajo cron como otro usuario, usando el indicador -u:

sudo crontab -u username -e

Por ejemplo, para ejecutar un trabajo cron como usuario "www-data", use el siguiente comando:

sudo crontab -u www-data -e

Revisión de la actividad de Crohn

Aunque ahora está listo para ejecutar comandos o secuencias de comandos específicos, es posible que deba asegurarse de que se estén ejecutando. El cron incorporado es que una vez que ejecuta el comando, enviará un correo electrónico al propietario del cron. Esto se puede cambiar con la variable "MAILTO".

Guía para principiantes sobre el uso de Cron para programar tareas en Linux - Linux

إضافة MAILTO=tucorreo@tudominio.com Todos los informes importantes serán enviados. cron a un correo electrónico específico. Esta variable se puede encontrar en la parte superior de la pantalla de edición crontab. Sin embargo, si no existe, puede agregar la variable y funcionará como se esperaba.

Varias direcciones de correo electrónico se pueden separar con una coma. Si necesita un comando de correo electrónico diferente en otro lugar, puede agregar el comando MAILTO directamente encima del comando. Los comandos se enviarán después de esto. mailto a la nueva dirección. si te vas MAILTO = vacío , se enviarán notificaciones al propietario de la entrada cron.

Alternativamente, puede usar el operador de redirección (>) para enviar el resultado cuando lo necesite.

34 3 * * 0 mysqlcheck --all-databases --check-only-changed --silent > /dev/null

Lo anterior redirigirá la salida a "/dev/null", que no envía ningún correo electrónico e ignora la salida.

Si desea asegurarse de que se está ejecutando un trabajo y no desea enviar un correo electrónico, también puede consultar los registros cron. En la mayoría de los sistemas, el acceso a los registros cron requerirá permisos de superusuario. El registro cron se puede encontrar en "/var/log". El archivo cron o syslog mostrará un registro de las entradas cron que se han ejecutado.

sudo grep crontab syslog
Guía para principiantes sobre el uso de Cron para programar tareas en Linux - Linux

Cron se puede restringir aún más para permitir un uso específico, y se pueden establecer configuraciones predeterminadas. Con la adición de canalizaciones y redireccionamientos, las entradas cron se pueden configurar para hacer todo tipo de cosas. En última instancia, cron es una herramienta que le brinda la capacidad de ejecutar tareas cuando lo desee y garantizar el mantenimiento de rutina de partes de su sistema después de su acuerdo.

DzTech

Soy ingeniero estatal con amplia experiencia en los campos de programación, creación de sitios web, SEO y redacción técnica. Me apasiona la tecnología y me dedico a brindar información de calidad al público. Puedo convertirme en un recurso más valioso para los usuarios que buscan información precisa y confiable sobre reseñas de productos y aplicaciones especializadas en diversos campos. Mi compromiso inquebrantable con la calidad y la precisión garantiza que la información proporcionada sea confiable y útil para la audiencia. La búsqueda constante de conocimiento me impulsa a estar al día con los últimos avances tecnológicos, asegurando que las ideas compartidas se transmitan de forma clara y accesible.
Ir al botón superior