Cómo programar un trabajo de Cron para ejecutar el último día de cada mes

Cómo programar un trabajo de Cron para ejecutar el último día de cada mes
La utilidad de Cron es una herramienta útil para automatizar las tareas que se ejecutan para una fecha y hora específicas. Por ejemplo, puede automatizar un trabajo para ejecutar todos los últimos días del mes en un momento determinado. La automatización de tareas es algo que no puede renunciar, especialmente como administrador. Puede ser una copia de seguridad que necesite crear para ejecutar varios scripts. Para evitar olvidar ejecutar scripts, la mejor opción es modificar el archivo crontab y programar trabajos cron, que se ejecutarán sin su intervención.

Esta guía presenta cómo puede crear un trabajo cron, particularmente uno que se ejecute el último día de cada mes.

Trabajando con trabajos cron

Debe crear un archivo CRONTAB para que el usuario dado cree un trabajo cron en Linux, Unix o MacOS. El crontabista El archivo contiene tablas con cinco campos donde puede especificar la fecha y hora del trabajo cron y la ruta completa al script o comando para ejecutar.

La sintaxis de un archivo crontab es como se muestra:

Hour Hour Date_of_month Month Day_of_week Comando/Script

Use el comando a continuación para abrir el archivo CRONTAB:

$ crontab -e

Aquí, hemos abierto un archivo crontab para el usuario actual. Si necesita programar el trabajo para un usuario en particular, use la sintaxis a continuación.

$ crontab -e -u

Con su archivo crontab abierto, puede agregar su trabajo cron en la parte inferior.

Por ejemplo, si necesitamos crear un trabajo cron que ejecute cada primer día De cada mes, el trabajo de Cron sería como se muestra:

$ 10 10 1 * */ruta/a/script.mierda

Lo anterior crea un trabajo cron que ejecuta cada 10:10 am Cada mes el primer día.

Programe el trabajo cron el último día de cada mes

Determinar el último día del mes puede ser un desafío como lo han hecho algunos meses 28, 29, 30, o 31 Como la última fecha. Además, el campo para el Dia del mes Toma un día específico y darle una lista de días posibles se ejecutaría en un día incorrecto.

El truco es especificar un comando que verifique si el día siguiente es el primer día del mes. Si es así, significa que el día actual es el último de ese mes y el trabajo de Cron puede ejecutar.

El comando a continuación verifica y devuelve la fecha de mañana:

$ fecha +%d -d mañana

Usando el mismo concepto, podemos crear una condición de que si la fecha de mañana regresa como 01-lo que significa que es el primer día, entonces el trabajo cron para ejecutar.

Por ejemplo, podemos especificar el comando para hacer eco de una salida dada y verificar que se ejecute cuando se agregue al archivo CRONTAB. Modifiquemos el comando anterior como se muestra a continuación:

$ ["$ (Fecha +\%d -d mañana)" = "01"] && echo "mañana es el primero"

Ahora, en lugar de que el comando muestre la salida para confirmar que mañana es el primer día del mes, podemos configurarlo para ejecutar nuestro trabajo cron.

El nuevo comando sería:

$ 30 13 28-31 * * ["$ (fecha +\%d -d mañana)" = "01"] &&/home/kyle/linuxhint.mierda

El trabajo cron anterior ejecutaría cada 1:30 DE LA TARDE de cada último día del mes. Si el último día es 28,29, 30 o 31 años, ejecutará el script especificado.

Tenga en cuenta que estamos enumerando las posibles fechas de cada último día del mes y procediendo a dar el comando que verifica que si el día siguiente es el primer día del próximo mes, entonces el día actual es el último mes del mes. Una vez confirmado, luego ejecuta el script.

Conclusión

Esta guía ofreció una guía práctica sobre cómo programar uno si estaba atrapado al programar un trabajo cron que se ejecuta todos los últimos días de cada mes. Hemos visto cómo determinar el último día de cualquier mes y programar un trabajo cron.