Los trabajos cron son esenciales si desea programar tareas automatizadas en su servidor Ubuntu 18.04. La mayoría de los webmasters los utilizan para ejecutar scripts automáticamente.

En Linux, un “cron” es un programador de trabajos basado en el tiempo, mientras que un “cron job” es una tarea. Ubuntu 18.04 tiene un demonio que se ejecuta en segundo plano y es responsable de iniciar trabajos cron en el sistema. El programador de Linux procesa las tareas que se encuentran en un archivo de configuración llamado crontab.

Por lo tanto, todas las tareas relacionadas con los trabajos cron se almacenan en los archivos de configuración junto con sus tiempos.

Posible uso de trabajos cron

  • Genere y envíe facturas a los clientes por correo electrónico de forma automática para los servicios de suscripción.
  • Desactivación de cuentas de clientes que han estado inactivas durante mucho tiempo.
  • Ejecución de una interfaz de programación de aplicaciones (API) para enviar boletines a los suscriptores.
  • Aplicación de sanciones a la morosidad de los préstamos si no se cumple la fecha de pago del préstamo.

Configurar un trabajo cron

Una pantalla de sintaxis de trabajo cron simple muestra el tiempo, el usuario y el comando que se ejecutará. Antes de familiarizarnos con la sintaxis del trabajo cron, asegúrese de que todo esté enumerado en la sección Requisitos previos.

requisitos

  • Un plan VPS de Ubuntu 18.04
  • Un usuario no root con permisos sudo

Nota especial: visite la página “Mejores servicios de hosting de Linux” de Hosting mas Baratoo la página “Mejor hosting de VPS” para obtener los mejores servicios de hosting de VPS de Linux.

Paso 1: Abra crontab con el editor de texto nano

> Para editar el archivo de configuración en el que se encuentran todos los trabajos cron, ejecute el siguiente comando en la ventana de su terminal:

$ sudo nano /etc/crontab

Una vez que haya abierto el archivo para editarlo, verá el siguiente encabezado y una lista de trabajos cron de muestra

Captura de pantalla de Ubuntu 04/18 crontab

La m  h dom mon dow user El encabezado tiene el siguiente significado

  1. m: el minuto en el que el trabajo cron se ejecuta de 0 a 59
  2. h: un valor numérico que determina la hora en que se ejecutarán las tareas. Valores aceptables de 0 a 23
  3. dom: día del mes en que se ejecutará el trabajo cron del 1 al 31.
  4. mon: el mes en que se ejecutará el trabajo cron del 1 al 12
  5. dow – día de la semana de 0 a 6 con domingo 0
  6. Usuario: el usuario bajo el que se ejecuta cron
  7. Comando: el comando de Linux que desea ejecutar, p. Ej. B. para realizar una copia de seguridad con un archivo PHP, puede usar el comando * * * * *. root /usr/bin/ phpfile.php

Ejemplo de trabajos cron

Puede jugar con los tiempos de crontab para realizar sus tareas en cualquier momento del día durante todo el año. A continuación, se muestran algunos ejemplos básicos que pueden resultar útiles.

Un cron que se ejecuta cada minuto

* * * * * [user] [command]

Un cron que se ejecuta cada hora en el quinto minuto

5 * * * * [user] [command]

Un cron que se ejecuta cada hora (cada vez que el minuto llega a cero)

0 * * * * [user] [command]

Un cron que se ejecuta a la medianoche todos los días (cada vez que la hora llega a cero)

0 0 * * * [user] [command]

Un cron que se ejecuta a las 5:15 a. M. Todos los días de diciembre únicamente

15 5 * 12 * [user] [command]

Asteriscos en los tiempos de crontab

En su mayor parte, es posible que esté usando un asterisco en lugar de un número en los tiempos. El asterisco indica al demonio cron que realice la tarea con todos los valores posibles para esta posición. Por ejemplo, si tiene un asterisco en el H A veces, el cron se ejecuta cada hora.

Operador de división / Operador de barra oblicua / Mod en Ubuntu 18.04 Cron Jobs

Por ejemplo, puede usar una barra para indicar valores incrementales en el crontab. El siguiente comando significa que el trabajo cron se ejecutará cada 5 minutos. En otras palabras, el carácter mod le indica al demonio crontab que ejecute el comando listado para cada minuto divisible por cero sin resto, p. B. 0,5,15,20,25,30,35,40,45,50,55

*/5 * * * * [user] [command]

Comas en crontab

Puede especificar diferentes valores para una sola posición separados por comas para que un trabajo cron se ejecute en varios momentos diferentes. Por ejemplo, si está diseñando una aplicación que cobra una tarifa trimestral a la cuenta de un cliente, puede usar la siguiente sintaxis crontab

0 2 1 1,4,7,10 * [user] [command]

Con el comando anterior, el trabajo cron se ejecutará a las 2 a.m. del primer día de enero, abril, julio y octubre. Si bien a algunos webmasters les suena extraño, puede usar palabras para planificar y seguirá funcionando.

0 2 1 Jan,Apr,Jul,Oct * [user] [command]

Guiones en el crontab de Ubuntu 18.04

Los guiones indican un área. Por ejemplo, una tarea se puede ejecutar una vez por hora entre las 6 a. M. Y las 9 a. M. Con la siguiente sintaxis.

0 6-9 * * *[user] [command]

Ejecutando archivos PHP en Ubuntu 18.04 crontab

Si bien los scripts CGI del lado del servidor (Common Gateway Interface) se ejecutan de forma predeterminada en Ubuntu 18.04, se deben realizar algunos ajustes para los scripts PHP.

Utilice la siguiente sintaxis para ejecutar un script PHP en crontab:

* * * * * /usr/bin/php [path to your php script]

Esto obligará al archivo PHP a pasar por el intérprete PHP correcto al que se hace referencia en la ruta, p. Ej. /usr/bin/php.

ejemplo

* * * * * root /usr/bin/php /var/backup.php

El código anterior ejecuta un script PHP cada minuto para automatizar un proceso de copia de seguridad PHP en el servidor.

Conclusión

Además del tiempo de inicio rápido y las principales correcciones de errores, Ubuntu 18.04 tiene herramientas flexibles para ejecutar sus trabajos cron. Recuerda empujar CTRL + X. y S. Cuando haya terminado de editar,/ etc / crontab ‘ Archivo de configuración en el Nano Editor. También debe configurar su servidor en la zona horaria adecuada, ya que los trabajos cron dependen de la fecha / hora de su servidor y esto debe configurarse correctamente por razones de precisión.