4 votes

Comment programmer une tâche Cron pour l'avant-dernier jour de chaque mois ?

Je veux programmer une tâche pour l'avant-dernier jour de chaque mois. J'ai lu ce grand article sur Shell qui script l'exécution. J'ai également vu que l'on peut utiliser "L" pour représenter le dernier jour du mois, mais j'utilise CentOS et ne peut pas utiliser la construction "L". .

Je veux exécuter la tâche à 23 heures l'avant-dernier jour de chaque mois. J'espère pouvoir construire une commande similaire à :

0 23 27-30 * * [ "$(date +%d -d tomorrow" = "L" ] && $HOME/path/to/script

Sachant que je ne peux pas utiliser L pour représenter le dernier jour du mois, comment puis-je utiliser cette logique pour programmer mon travail Cron ?

2 votes

A tous ceux qui veulent modifier cette question : Le HTML cassé est en fait une partie de la raison pour laquelle la crontab ne fonctionne pas. dans la question vous vous trompez.

0 votes

Il est suggéré d'utiliser "31", car certains mois comptent 31 jours. Il ne sera pas appelé le 31 janvier, par exemple.

0 votes

@PeterHorvath Veuillez cesser de modifier le contenu de la question. Le HTML cassé est en fait une partie du problème.

8voto

Michael Hampton Points 232226

Les échantillons de code sur ce site sont erronés. Ils ont certains caractères Shell remplacés par des entités HTML. Les guillemets semblent également être au mauvais endroit. Je me demande si l'auteur a jamais regardé cette page en l'écrivant...

Une fois qu'on aura corrigé ça, et qu'on aura vérifié si le premier du mois est dans dos jours plutôt qu'un...

0 23 27-30 * * [ $(date +\%d -d "2 days") == 01 ] && /where/is/my/script

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X