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/ScriptUse el comando a continuación para abrir el archivo CRONTAB:
$ crontab -eAquí, 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 -uCon 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.mierdaLo 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ñanaUsando 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.mierdaEl 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.