Comment planifier un travail cron pour fonctionner le dernier jour de chaque mois

Comment planifier un travail cron pour fonctionner le dernier jour de chaque mois
L'utilitaire Cron est un outil utile pour l'automatisation des tâches à fonctionner pour une date et une heure spécifiques. Par exemple, vous pouvez automatiser un travail à exécuter tous les derniers jours du mois à une heure donnée. L'automatisation des tâches est quelque chose que vous ne pouvez pas renoncer, surtout en tant qu'administrateur. Il peut s'agir d'une sauvegarde que vous devez créer pour exécuter divers scripts. Pour éviter d'oublier d'exécuter des scripts, la meilleure option consiste à modifier le fichier Crontab et le calendrier des travaux Cron, qui s'exécutera sans votre intervention.

Ce guide explique comment créer un travail cron, en particulier celui qui s'exécute le dernier jour de chaque mois.

Travailler avec Cron Jobs

Vous devez créer un fichier crontab pour l'utilisateur donné pour créer un travail cron dans Linux, Unix ou MacOS. Le crontab Le fichier contient des tables avec cinq champs où vous pouvez spécifier la date et l'heure du travail cron et le chemin complet vers le script ou la commande pour exécuter.

La syntaxe d'un fichier crontab est comme indiqué:

Minute Hour Date_of_Month Mois Day_of_week Commande / script

Utilisez la commande ci-dessous pour ouvrir le fichier Crontab:

$ crontab -e

Ici, nous avons ouvert un fichier crontab pour l'utilisateur actuel. Si vous devez planifier le travail pour un utilisateur particulier, utilisez la syntaxe ci-dessous.

$ crontab -e -u

Avec votre fichier crontab ouvert, vous pouvez ajouter votre travail cron en bas.

Par exemple, si nous devons créer un travail cron qui exécute chaque premier jour De chaque mois, le travail cron serait comme indiqué:

10 $ 10 1 * * / chemin / vers / script.shot

Ce qui précède crée un travail cron qui exécute chaque 10h10 chaque mois le premier jour.

Planifiez Cron Job le dernier jour de chaque mois

La détermination du dernier jour du mois peut être difficile comme certains mois 28, 29, 30, ou 31 Comme la dernière date. De plus, le champ pour le Jour du mois prend une journée spécifique et lui donner une liste des jours possibles s'exécuterait un jour incorrect.

L'astuce consiste à spécifier une commande qui vérifie si le lendemain est le premier jour du mois. Si c'est le cas, cela signifie que le jour en cours est le dernier de ce mois et que le travail cron peut alors exécuter.

La commande ci-dessous vérifie et retourne la date de demain:

$ date +% d -d demain

En utilisant le même concept, nous pouvons créer une condition que si la date de demain revient comme 01-ce qui signifie que c'est le premier jour, puis le travail cron à exécuter.

Par exemple, nous pouvons spécifier la commande pour faire écho à une sortie donnée et vérifier qu'elle s'exécutera lorsqu'elle sera ajoutée au fichier crontab. Modifions la commande ci-dessus comme indiqué ci-dessous:

$ ["$ (Date + \% d -d demain)" = "01"] && echo "Tommorow est 1er"

Maintenant, au lieu de la commande affichant la sortie pour confirmer que demain est le premier jour du mois, nous pouvons le définir pour exécuter notre travail cron.

La nouvelle commande serait:

30 $ 13 28-31 * * [«$ (date + \% d -d demain)» = «01»] && / home / kyle / linuxhint.shot

Le travail cron ci-dessus fonctionnerait chaque 13h30 de chaque dernier jour du mois. Que le dernier jour soit de 28,29, 30 ou 31, il exécutera le script spécifié.

Notez que nous énumons les dates possibles de chaque dernier jour du mois et que nous procédons pour donner la commande qui vérifie que si le lendemain est le premier jour du mois prochain, alors le jour en cours est le dernier du mois. Une fois confirmé, il exécute ensuite le script.

Conclusion

Ce guide a offert un guide pratique sur la façon de planifier la première si vous étiez coincé à planifier un travail cron qui fonctionne chaque dernier jour de chaque mois. Nous avons vu comment déterminer le dernier jour de n'importe quel mois et planifier un travail cron.