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

Shell et commandes GNU Discussion :

Arrêter un script bash si problème


Sujet :

Shell et commandes GNU

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 11
    Par défaut Arrêter un script bash si problème
    Bonjour
    Je travaille actuellement sur un script bash permettant de faire une sauvegarde complète d'un serveur sur un autre. Afin d'optimiser mon script, j'aimerais qu'il s'arrête au bout de 4H s’il rencontre un problème et qu'il bloque. Jespere avoir été claire.
    Merci de votre aide.

  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
    tu peux créer un marqueur en mémoire ou sur disque en début de script
    par exemple un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    touch /var/run/$0.$(+%Y%m%d-%H).$pid
    et le retirer en fin de script. et pendant ce temps tester à H+4 si le fichier est toujours présent et si oui tuer le processus et effacer le marqueur... par exemple avec un autre script en crontab
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    [...]
    if [ -f /var/run/nom_du_script.*.$pid ] ; then
      kill -9 $pid
      rm /var/run/nom_du_script.*.$pid
    fi
    [...]

  3. #3
    Membre très actif

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Par défaut
    Tu peux aussi regarder du côté des ordonnanceurs, je ne connais pas les versions open source, mais il en existe peut-être certains d'intéressants :

    http://jobscheduler.sourceforge.net/
    http://www.redwood.com/products/cronacle/

    ...

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 11
    Par défaut
    Merci de vos réponse ^^.

    Le script doit s'arrêter au bout de 4h seulement si il a rencontré un problème et qu'il tourne dans le "vide".

    La première solution je la comprend mais la deuxième avec les ordonnanceurs je vois pas trop ...

  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 amiranoff Voir le message
    Merci de vos réponse ^^.

    Le script doit s'arrêter au bout de 4h seulement si il a rencontré un problème et qu'il tourne dans le "vide".

    La première solution je la comprend mais la deuxième avec les ordonnanceurs je vois pas trop ...
    un ordonnanceur donne un timeout à chaque jobs, et le "plante" si le timeout est atteint....
    mais un ordonnanceur n'a de sens que si on a au moins 100 jobs, et encore seulement si il y a besoin des les séquencer les uns par rapport aux autres.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 635
    Par défaut
    Bonjour,

    GNU coreutils propose une commande timeout
    ...
    ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 11
    Par défaut
    C'est beaucoup pour pas grand chose, dans mon cas je n'en ai pas besoin.

  8. #8
    Membre très actif

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Par défaut
    100 jobs, c'est peut être un peu exagéré, mais ça n'est sans doute pas indispensable pour un seul job effectivement

    cela étant, dans le cadre d'un backup, cela permet de concevoir une architecture plus propre en commençant par préparer le serveur à être sauvegardé comme en arrêtant les services qui peuvent tourner, fermant ce qui ne sert à rien, etc... afin d'avoir le serveur dans un état stable avant de faire le backup.

    il suffit pour cela d'ajouter quelques scripts simples pour fermer ce qui peut l'être et de conditionner le backup sur ces scripts... libre ensuite d'ajouter un timeout de 4h avant de remettre petit à petit le serveur en marche

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 11
    Par défaut
    Bonjour,

    Je comprend mieux l'utilité de ordonnanceurs a présent je t'en remercie beaucoup !!

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

Discussions similaires

  1. Problème avec un script bash
    Par abdelghani666 dans le forum Administration système
    Réponses: 4
    Dernier message: 30/04/2012, 19h40
  2. Problème script bash (comparaison de string)
    Par nicoo04 dans le forum Linux
    Réponses: 2
    Dernier message: 26/01/2011, 22h23
  3. [Script Bash] Problème pour MAJ
    Par kazylax dans le forum Unix
    Réponses: 2
    Dernier message: 30/05/2010, 16h33
  4. problème execution d'un script bash
    Par molbento dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 24/08/2009, 16h59
  5. Problème de script Bash dans script Perl
    Par Aviator dans le forum Langage
    Réponses: 3
    Dernier message: 03/01/2008, 20h50

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