12
votes

Comment définir le travail cron pour tous les 45 jours

Je veux envoyer un courrier électronique après 45 jours à l'aide d'un emploi cron. Depuis, j'ai déjà fait PHP
Script pour email. Donc, je veux l'exécuter après 45 jours. Pouvez-vous m'aider pour cela?


1 commentaires

Avez-vous trouvé une solution?


5 Réponses :


15
votes

Le script peut être exécuté quotidiennement et enveloppé pour vérifier si le nombre de jours MODULO 45 est égal à une constante:

10 13 * * *  test $(( `date +\%s`/24/60/60\%45 )) = 41 && your_script


3 commentaires

Je ne peux pas comprendre ce que le 41 concerne. Quelqu'un pourrait-il aider à expliquer?


Je voulais que cette condition soit vraie le 2012-01-12 lorsque OP testerait probablement cette réponse. J'ai donc calculé que j'ai besoin de choisir "le numéro de jour 41 de chaque période de 45 jours" en tant que journée d'exécution.


Ah, je vois. Merci



4
votes

de crontab site xxx pré>

Il n'y a pas vraiment tout ce qui va faire "tous les 45 jours" p>

Je dirigerais votre script une fois par jour et que votre script vérifie si cela fait 45 jours depuis votre dernière envoi de courrier. P>

<?php
    if($days_since_last_email >= 45) {
        //your existing send mail script here
    }
?>


1 commentaires

Je pense que la réponse de Songo est ce que vous recherchez.



-4
votes

Vous pouvez utiliser

0 0 */45 * * php path/to/your/php/script


2 commentaires

Le numéro divisible 45 n'est pas compris entre 1 et 31 pendant des jours.


La 3ème place de l'expression Cron représente le jour du mois (allant de 1 à 31), pas un numéro de jour sans hésiter.



-3
votes

Il y a moyen de dire «tous les 45 jours», vous devez plutôt spécifier quels jours spécifiques vous souhaitez exécuter le travail. Vous voudrez probablement vouloir courir le travail sur 45 jours.

Le troisième champ est pendant des mois. Si vous spécifiez * dans ce champ, il exécute tous les 45 jours.

0 0 * / 45 * * /Home/ramesh/backup.sh

Essayez celui-ci


1 commentaires

C'est faux qu'il cause qu'il fonctionne tous les 1 jour des mois, ce n'est pas comme si vous pensez que cela ne tombe pas dans 0-31



4
votes

Même peut être implémenté par plancher 2 travaux cron pour le script

à partir du 01-janvier-17: xxx


1 commentaires

Il convient de noter que cela ne sera pas exactement tous les 45 jours, à peu près environ 45 jours, grâce au nombre différent de jours par mois. Néanmoins, si seulement environ 45 jours est suffisant, c'est une bonne option. +1