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

Linux Discussion :

CRONTAB, empecher de multiple exécution du même script


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 122
    Par défaut CRONTAB, empecher de multiple exécution du même script
    Bonjour,

    Voila j'ai une petite appli qui est exécuter en crontab (java -jar monappli.jar) toutes les 5 min.
    La plupart du temps Les 5 minutes sont largement suffisantes pour l'exécution du script, mais de temps en temps cela dure plus de 5 min.

    Existe-t-il un mécanisme qui permet d'empêcher l'exécution de l’occurrence suivante de mon script si la précédente n'est pas terminée ?

    Merci d'avance

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    la bonne méthode c'est que chaque session de l'appli utilise un flag (dans /var) pour dire "attention je tourne déjà"...
    l'itération suivante est donc sencée vérifier que le flag n'existe pas... sinon delai et tester et au bout de 3 itérations quitter en "warning".

    ton appli doit être écrite pour spécifier cette procédure interne.

    ---------------

    quand c'est une appli extérieure, ou que tu ne peux pas modifier, il faut créer cette fonction de manière externe.

    typiquement l'appli n'est pas lancée via le cron, mais c'est un script qui est lancé dans le crontab.

    ce dernier réalise alors le checkup et si ok lance l'appli, sinon donne du délai et au bout de 3 relances sort en timeout...

    -------------

    une très mauvaise solution
    : agrandir l'écart type entre deux itérations ...

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 122
    Par défaut
    Merci @frp31 je teste ça de suite

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 122
    Par défaut
    Super ca fonctionne nikel Ci-dessous le petit script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #!/bin/bash
     
    if [ -e /var/www/script/.flag ]; then
    	exit
    fi
     
    touch /var/www/script/.flag
     
    cd /opt/new/appli/
     
    java -jar monappli.jar database.properties
     
    rm /var/www/script/.flag
    Merci encore frp31, mais une petite question : tu entends quoi par agrandir l'écart type ?

  5. #5
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    Citation Envoyé par bedomon Voir le message
    Super ca fonctionne nikel Ci-dessous le petit script :

    Merci encore frp31, mais une petite question : tu entends quoi par agrandir l'écart type ?
    genre lancer le cron toutes les heures à la place de toutes les 5 minutes par exemple

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

Discussions similaires

  1. Problème d'exécution d'un script via le crontab
    Par aeroth dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 07/01/2014, 17h47
  2. Réponses: 0
    Dernier message: 27/04/2012, 01h45
  3. Réponses: 5
    Dernier message: 13/09/2010, 08h05
  4. Réponses: 2
    Dernier message: 23/12/2009, 14h41
  5. Réponses: 7
    Dernier message: 12/06/2009, 16h13

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