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 :

Lors de son execution crontab


Sujet :

Administration système

  1. #1
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut Lors de son execution crontab
    Hello,

    Voila je suis sous un environnement suze Enterprise 9.
    J'ai installé un serveur Websphere.

    J'ai écrit un script shell permettant de faire certain traitement sur le serveur (arrêt, demarrage, sauvegarde BDD, sauvegarde log,etc..)

    Le problème vient essentiellement de l'arret et du redemarrage du serveur.
    Lorsque j'execute se script directement sur une ligne de commande tout se passe bien, le serveur redemarre correctement.

    Par contre lorsque le redemarrage s"effectue par l'intermediaire de crontab (qui utilise mon script) le serveur ne redemarre pas correctement et celui ci devient inexploitable.

    Pour palier à ce probleme j'avais trouvé la solution de lancer mes commandes en les prefixant de

    su - root -c "ma_commande"
    .

    En utilisant cette astuce cela fonctionne impeccablement!

    Maintenant mon admin systeme est passé par là et à cru bon de supprimer ce préfix ce qui me fait revenir en arriere.

    J'aurais aimer comprendre pour le fait de rajouter ce prefix fait que cela fonctionne.

    Je vous remercie par avance pour votre aide!
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  2. #2
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    causes possibles:

    1. Tous les utilisateurs ne sont pas abilités à faire un shutdown.
    2. Les variables d'envrionnement (dont le $path) de l'utilisateur de la crontab ne sont pas toutes présentes. Il faut indiquer le chemin absolu pour chaque commande.
    3. Y en a sûrement d'autres.


    Pourquoi est ce que tu dois redémarrer le serveur ? parceque tu changes de kernel tous les jours ? ou de hostname ?
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  3. #3
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    Merci pour ta reponse!

    Je me suis mal exprimé .. quand je parle de serveur je voulais dire le serveur Websphere (Websphere Portal Server pour etre plus precis).

    C'est juste un redemarrage logiciel de l'application Websphere.

    J'utilise le root pour executer la crontab. voila la ligne qui s'execute

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    30 03 * * *    root /applis/scripts/nightScript/globalBackup.sh 2> /usr/fab/backupLogGlobal.log
    Merci d'avance pour une éventuelle aide prochaine
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    Comme l'evoque ggnore, c'est un problème d'environnement :
    la crontab ne "charge" pas l'environnement de l'utilisateur, elle ne passe pas par les sequences executer lors du login (/etc/profile, puis, $HOME/bash_profile), l'environnement de la crontab est trés "lite". le faite de faire un su - root (le - surtout ), provoque le chargement de l'environnement user (ici root) comme un login .

    Recherchees élémebnt d'environnement manquant et ajoute les dans ton script. le moyen le plus simple :
    ajoutet dans ton script lancé par la crontab la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    env >> /tmp/mon_fichier_de_traces_cron.log
    puis de relancer (aprés obtention du resultat), le script manuellement en modifiant le fichier de log
    ensuite tu n'as plus que a comparer les 2 fichiers et determiné les variables manquante utile.
    Marc
    Slackware for ever ......
    BASH - KSH ( http://marcg.developpez.com/ksh/ )

  5. #5
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Citation Envoyé par MarcG
    Comme l'evoque ggnore, c'est un problème d'environnement :
    la crontab ne "charge" pas l'environnement de l'utilisateur, elle ne passe pas par les sequences executer lors du login (/etc/profile, puis, $HOME/bash_profile), l'environnement de la crontab est trés "lite". le faite de faire un su - root (le - surtout ), provoque le chargement de l'environnement user (ici root) comme un login .

    Recherchees élémebnt d'environnement manquant et ajoute les dans ton script. le moyen le plus simple :
    ajoutet dans ton script lancé par la crontab la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    env >> /tmp/mon_fichier_de_traces_cron.log
    puis de relancer (aprés obtention du resultat), le script manuellement en modifiant le fichier de log
    ensuite tu n'as plus que a comparer les 2 fichiers et determiné les variables manquante utile.

    Merci beaucoup pour cette reponse.. en fait en cherchant j'avais trouvé cette voie là...

    Effectivement le probleme venait tout simplement de là!
    Je suis newbie (un peut avancé sous Unix/Linux) j'apprend tous les jours en étant confronté aux différents problèmes.

    En tout cas encore merci!!
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


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

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/08/2012, 10h42
  2. Erreur lors de l'execution d'un script jsp
    Par tuxor dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 06/08/2004, 12h35
  3. erreur "ORA-22905" lors de l'execution d'un requet
    Par benji999 dans le forum Administration
    Réponses: 26
    Dernier message: 14/04/2004, 11h47
  4. [langage] Passage de parametre lors de l execution
    Par WetzlarMan dans le forum Langage
    Réponses: 4
    Dernier message: 16/03/2004, 13h28
  5. Réponses: 6
    Dernier message: 27/01/2004, 16h08

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