IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

Cron : le premier jour de chaque mois à 9h15 sauf s'il s'agit d'un dimanche.


Sujet :

Administration système

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 66
    Points : 56
    Points
    56
    Par défaut Cron : le premier jour de chaque mois à 9h15 sauf s'il s'agit d'un dimanche.
    Bonjour à tous,

    Tout d'abord, pour être honnête, je n'y connais absolument rien en linux. Par contre, je fais un peu de développement en langage R dans RStudio sous environnement linux et je dois planifier l'exécution de mes programmes pour qu'ils soient déclenchés le premier jour de chaque mois à 9h15, saus si le premier jour du mois est un dimanche, auquel cas ils doivent être déclenchés à 19h30.

    Pour planifier l'exécution de mes programmes, je passe par un menu de RStudio qui me donne accès à une fenêtre où je peux créer une planification via une interface graphique. Je peux ensuite voir dans la console de RStudio le résultat obtenu.

    Dans un premier temps, pourriez-vous svp me confirmer que la planification ci-dessous répond bien à la première partie de mon besoin, à savoir une exécution à 9h15 le 1er jour de chaque mois, et ce quel que soit ce jour ?

    15 9 1 * *

    Si la séquence ci-dessus est conforme à mon attente, y-a-t-il un moyen d'ajouter ma seconde contrainte, à savoir passer cette exécution de 9h15 à 19h30 si le premier jour du mois est un dimanche ? Je me doute bien que mon interface graphique ne me permettra pas autant de souplesse et que la solution passera par une modification manuelle.

    Merci d'avance pour votre aide et bonne journée.

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 587
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 587
    Points : 19 471
    Points
    19 471
    Par défaut
    Bonjour,

    il faudrait deux lignes cron :
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    15 9 1 * 1-6 taCommande
    30 19 1 * 7 taCommande
    cf. man 5 crontab

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 66
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Bonjour,

    il faudrait deux lignes cron :
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    15 9 1 * 1-6 taCommande
    30 19 1 * 7 taCommande
    cf. man 5 crontab
    Bonjour, merci bcp, je vais essayer.

    Bonne journée.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 66
    Points : 56
    Points
    56
    Par défaut
    Bonjour,

    Je reviens sur la question que j'avais posée. Finalement, il faut effectivement 2 lignes cron mais la bonne syntaxe semble être celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    15 9 1 * * [ $(date +\%u) -ne 0 ] maCommande
    30 19 1 * * [ $(date +\%u) -eq 0 ] maCommande
    Je dis "semble" parce que seule la première ligne du cron ci-dessus a pu être testée (avec succès) eu égard au calendrier depuis sa mise en production. Le prochain dimanche qui tombera un 1er du mois sera le 1er septembre 2024. A ce moment-là, nous serons alors tout à fait sûr de la fiabilité de la solution mise en place.

    Dans les commandes ci-dessus, les "-ne 0" et "-eq 0" testent si la date système correspond à un dimanche ou pas, le "0" correspondant au dimanche.

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 587
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 587
    Points : 19 471
    Points
    19 471
    Par défaut
    en l'état, ça ne peut pas fonctionner : deux commandes (les crochets sont un alias de la commande test) ne peuvent pas être l'une à côté de l'autre sans lien logique, ou séparateur...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ [ 1 -eq 1 ] echo "foo"
    bash: [: «*]*» manquant
    $
    de plus, il n'y a pas besoin de test, puisque cron n'effectuera les commandes qu'aux heures indiquées soit (première ligne) du lundi au samedi, soit (seconde ligne) le dimanche.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DeskI XiR2] Etat au dernier jour de chaque mois
    Par adrien.marlinge dans le forum Débuter
    Réponses: 15
    Dernier message: 06/09/2011, 17h45
  2. Opération tous les N jours de chaque mois de l'année
    Par hellspawn_ludo dans le forum ASP.NET
    Réponses: 6
    Dernier message: 14/11/2008, 21h05
  3. Cron : le premier {jour} de chaque mois
    Par LFC dans le forum Administration système
    Réponses: 4
    Dernier message: 05/11/2007, 13h06
  4. [Dates] calendrier : premier jour de chaque mois
    Par vodasan dans le forum Langage
    Réponses: 2
    Dernier message: 21/02/2007, 07h26
  5. Réponses: 26
    Dernier message: 01/07/2006, 13h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo