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 :

[SHELL] Problème d'exécution script avec Crontab


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé Avatar de Leeloo_Multiboot
    Profil pro
    Administrateur Unix/Linux
    Inscrit en
    Avril 2008
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur Unix/Linux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2008
    Messages : 417
    Points : 550
    Points
    550
    Par défaut [SHELL] Problème d'exécution script avec Crontab
    Bonsoir à tous,

    Après avoir fouillé dans les archives de dvp et googlé pendant un moment sans trouver de réponses efficaces, j'ai décidé de poster mon soucis.
    J'ai un script bash qui fait quelques actions et lance à son tour différents scripts bash.

    Je précise en 1er lieu, que ces scripts fonctionnent lorsque je les lance dans l'interpréteur, mais dès qu'il sont placés dans le crontab, ben ya plus personne au balcon...

    J'ai donc essayé plusieurs façons d'utiliser crontab, et aucune n'a daigné fonctionner jusqu'à présent.

    Voici une partie du 1er script (sauvegarde.sh):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #!/bin/bash
    ...
    echo "00 14 * * * /data/.../arret_base.sh" >> testcrontab
    ...
    crontab testcrontab
    Je n'ai pas mis ce qu'il y a autour car les actions basées sur des binaires fonctionnent avec le cron.

    Voici le script arret_base.sh appelé par sauvegarde.sh:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #!/bin/bash
    /home/.../bin/sqlplus /nolog @/data/.../arret_base.sql
    Comme énoncé plus haut, les scripts lancés à la mano fonctionnent parfaitement.

    J'ai également essayé en modifiant directement le cron grâce à
    Le contenu (très succint):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    00 14 * * * /data/.../arret_base.sh
    Cela ne marche toujours pas. J'ai également essayé en rajoutant le chemin complet de l'interpréteur avant le chemin de mon script mais sans résultat (d'ailleurs, l'entète de mon script étant correcte ça ne sert à priori à rien).

    Merci pour vos éclaircissements

    PS: je suis sous RHEL

  2. #2
    Membre éprouvé
    Avatar de matrix788
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    740
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 740
    Points : 1 056
    Points
    1 056
    Billets dans le blog
    2
    Par défaut
    slt

    pourquoi le scrpt lancé a une extension en sql et une autre fois en sh ??

  3. #3
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Points : 4 130
    Points
    4 130
    Par défaut
    Salut,

    Mets tu le chemin absolu de ton script ?

    Winnt

  4. #4
    Membre confirmé Avatar de Leeloo_Multiboot
    Profil pro
    Administrateur Unix/Linux
    Inscrit en
    Avril 2008
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur Unix/Linux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2008
    Messages : 417
    Points : 550
    Points
    550
    Par défaut
    pourquoi le scrpt lancé a une extension en sql et une autre fois en sh ??
    Oui, je n'ai pas été très clair, je vais rectifier.
    J'ai un premier script sauvegarde.sh, celui avec les commandes qui s'ajoutent au cron.
    Dans une de ces commandes, le script arret_base.sh est appelé.
    Ce script arret_base.sh lance quant à lui un fichier de requètes SQL grâce à sqlplus.

    Mets tu le chemin absolu de ton script ?
    Oui à chaque fois, que ce soit pour les binaires ou les scripts c'est les chemins absolus.

  5. #5
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Points : 4 130
    Points
    4 130
    Par défaut
    Salut,

    Sous quel utilisateur lance tu ces scripts ?

    As tu les droits d'exécution sur sqlplus en tant qu'ilisateur lambda ?

    Winnt

  6. #6
    Membre confirmé Avatar de Leeloo_Multiboot
    Profil pro
    Administrateur Unix/Linux
    Inscrit en
    Avril 2008
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur Unix/Linux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2008
    Messages : 417
    Points : 550
    Points
    550
    Par défaut
    Sous quel utilisateur lance tu ces scripts ?
    As tu les droits d'exécution sur sqlplus en tant qu'ilisateur lambda ?
    Avec l'utilisateur Oracle, il a tous les droits nécessaires.

    Mais j'ai réussi à faire lancer le script à l'aide de Cron


    J'ai retouvé un topic qui datait d'un an, et où une personne voulait récupérer les variables de son .cshrc à l'aide d'un script sh lancé par Cron.
    J'ai donc sourcé dans mon script sauvegarde.sh, comme expliqué, mon fichier .bash_profile, qui contient toutes mes variables user.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #/bin/bash
    source /home/oracle/.bash_profile
    ...
    echo "00 14 * * * /data/.../arret_base.sh" >> testcrontab
    ...
    crontab testcrontab
    J'étais dessus depuis ce matin, à 10min de la fin de journée ça rend un homme heureux

    Merci à vous,

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

Discussions similaires

  1. [XL-2000] Problème d'exécution '438' avec un Range
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/02/2012, 10h42
  2. Erreur exécution script avec sqlplus
    Par BaronSamdi dans le forum Sql*Plus
    Réponses: 8
    Dernier message: 25/05/2010, 11h23
  3. problème d'exécution d'un crontab
    Par kaele dans le forum Administration système
    Réponses: 4
    Dernier message: 19/12/2008, 10h48
  4. [OpenSceneGraph] problème d'exécution osg avec visual studio
    Par poilu933 dans le forum OpenSceneGraph
    Réponses: 5
    Dernier message: 26/11/2008, 13h02
  5. Réponses: 4
    Dernier message: 27/04/2007, 13h21

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