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 POSIX Discussion :

crontab en erreur [Solaris][KSH]


Sujet :

Shell et commandes POSIX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 12
    Par défaut crontab en erreur
    Bonjour,

    Je suis sur une machine Solaris.
    Je cherche a ordonnancer l'arrêt d'une base de données Sybase IQ.

    Pour cela j'ai fais un script contenant l'appel au .profil et la commande qui permet de coupé ma base de données.

    Voici mon script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /sybase/iq1510/.profile
    /sybase/iq1510/IQ-15_1/bin64/dbstop -c "uid=DBA;pwd=sql;eng=iqif520;dbn=if5infoaco_aa;unconditional=true"
    J'ai le message d'erreur suivant qui apparait dans mon fichier de log

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    stty: : No such device or address
    /sybase/iq1510/arret_relance_sybaseIQ.ksh: -o: bad option(s)

  2. #2
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonjour.

    Le script fonctionne bien lorsqu'il est lancé manuellement ? Ou bien cette erreur n'apparait que lorsqu'il est lancé via un cron job ?

    Si c'est le cas, merci de donner la ligne du cron job en question, on sait jamais (l'option "-o" inconnue y figure peut être par exemple).



    Idriss

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 12
    Par défaut
    Re,

    Le script fonctionne bien lorsque je le lance directement.

    Voici mon crontab

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    54 14 29 * * /sybase/iq1510/arret_relance_sybaseIQ.ksh > /sybase/iq1510/erreurs.log 2>&1
    Merci d'avance pour votre aide.

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 853
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 853
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par kochi56 Voir le message
    Re,

    Le script fonctionne bien lorsque je le lance directement.

    Voici mon crontab

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    54 14 29 * * /sybase/iq1510/arret_relance_sybaseIQ.ksh > /sybase/iq1510/erreurs.log 2>&1
    Merci d'avance pour votre aide.
    Salut
    Un cron que tu lances à 14h54 ??? C'est vrai qu'aucune heure n'est privilégiable par rapport à une autre mais intuitivement on a plutôt tendance à mettre des divisions parfaites de 60 comme 14h15 ou 14h30 ou même parfois 14h05.

    Ceci dit, il serait aussi utile de contenu du .profile. Il faut savoir que le cron se lance sans terminal associé (normal, il est prévu pour travailler sans utilisateur). Et ce message qui parle de stty ressemble fort à un pb dû à ce manque de terminal.
    De plus, un ".profile" ne s'exécute jamais mais se charge dans le contexte courant. C.a.d. qu'on ne lance pas .profile (dans un sous processus) mais source .profile (chargement dans le contexte courant). Bref peut-être que ton .profile n'est pas prévu pour s'exécuter 1) en tant que script et 2) dans un cron donc sans terminal...

    De toute façon, si tu veux que le .profile soit intégré dans ton script, il faut le modifier ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    source /sybase/iq1510/.profile
    /sybase/iq1510/IQ-15_1/bin64/dbstop -c "uid=DBA;pwd=sql;eng=iqif520;dbn=if5infoaco_aa;unconditional=true"
    Déjà ton script est mieux câblé. Et peut-être que ça résoudra même le problème...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 12
    Par défaut
    Bonjour,

    Merci pour votre aide.

    En faite l'heure paramétré dans le crontab c'est juste pour ne pas attendre trop longtemps quand je fais mon test (je change cette heure à chaque modif).

    J'ai corrigé l'appel au .profile en ajoutant source devant.

    Le message d'erreur à changé :

    /sybase/iq1510/arret_relance_sybaseIQ.ksh: source: not found
    ld.so.1: dbstop: fatal: libdblib11_r.so: open failed: No such file or directory
    Killed

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 853
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 853
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par kochi56 Voir le message
    Le message d'erreur à changé :

    /sybase/iq1510/arret_relance_sybaseIQ.ksh: source: not found
    J'avais pas tilté que t'étais en ksh. L'instruction "source" est une instruction Bourne Again Shell mais n'existe pas en Korn. L'instruction d'origine est "." (point tout court) qui vient du Bourne Shell de base. Comme c'est pas trop parlant ce point tout court, ça a évolué en bash vers "source".

    Ce qui me rappelle aussi qu'un script embarque toujours avec lui le nom de son exécutable. Pour qu'il puisse être exécuté par un autre utilisateur qui ne travaille pas forcément dans le même shell que celui du script.

    Donc ton script devrait-être comme cela
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #!/bin/ksh
    . /sybase/iq1510/.profile
    /sybase/iq1510/IQ-15_1/bin64/dbstop -c "uid=DBA;pwd=sql;eng=iqif520;dbn=if5infoaco_aa;unconditional=true"
    ...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    "source" est un bashisme qui ne choque bien sûr personne dans le forum GNU.
    La syntaxe portable est:

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

Discussions similaires

  1. Erreur dans crontab
    Par higepiyo59 dans le forum Linux
    Réponses: 20
    Dernier message: 16/05/2012, 08h44
  2. [PHP 5.3] PHP erreur crontab DEBIAN
    Par chabliya dans le forum Langage
    Réponses: 1
    Dernier message: 30/04/2012, 16h16
  3. erreur dans crontab
    Par dvp_zero dans le forum Linux
    Réponses: 6
    Dernier message: 03/06/2010, 14h49
  4. Erreur Archive::Zip en crontab
    Par devjcc dans le forum Modules
    Réponses: 6
    Dernier message: 01/12/2009, 22h41
  5. [Kylix] Erreur objet
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h41

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