Déterminer un Shell pour tâche cron

Résolu
yann747 Messages postés 128 Statut Membre -  
yann747 Messages postés 128 Statut Membre -
Bonjour,
dans quel fichier peut-on déterminer le shell qui sera utilisé lors du lancement de scripts via la crontab?
Merci d'avance.

4 réponses

  1. Utilisateur anonyme
     
    salut,

    dans le script, sur la première ligne, à l'aide du shebang.
    #!/chemin/shell
    0
  2. yann747 Messages postés 128 Statut Membre 2
     
    Merci pour la réponse,
    mais j'ai l'impression que l'environnement n'est pas le même...
    j'ai pourtant mis dans mon script

    #!/bin/csh
    source ~/.cshrc

    ...
    ...
    ...

    Je précise que tout marche bien si je lance le scrpit 'manuellement"
    0
    1. Utilisateur anonyme
       
      j'ai l'impression
      ce n'est pas très objectif!
      quelle(s) observation(s) te donne(nt) cette impression?
      0
    2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Salut,

      source ~/.cshrc
      Tu devrais mettre le chemin complet vers ton .cshrc, il n'est pas dit qu'à ce stade la crontab reconnaisse le "~" ;-\

      Donc soit ${HOME}/.cshrc soit /home/${LOGNAME}/.cshrc
      0
    3. yann747 Messages postés 128 Statut Membre 2
       
      Désolé pour l'imprécision de ma réponse,

      je lance:

      ./monsript.csh


      ou une version bash

      ./monscript.sh


      Dans les deux cas ça marche , malgré un warning:

      Fontconfig error: Cannot load default config file


      j'ai pourtant vérifié mon /etc/fonts ...
      Bref, ça ne gêne pas la bonne execution

      Les même scripts testés via la crontab donnent cette erreur pour bash:

      Fontconfig error: Cannot load default config file


      qui cette fois-ci est fatale, le script s'arrete.

      pour csh l'erreur est la suivante:

      USER: Undefined variable.
      0
  3. yann747 Messages postés 128 Statut Membre 2
     
    Bon, ça avance un peu mais c'est toujours pas ça...
    Le fait que script s'arrête c'était à cause de ma redirection:

    monscript.csh 2>monfichier.log


    Je savais pas...

    Mais j'ai une nouvelle erreur, qui survient toujours ( et uniquement) depuis le lancement cron:

    <code>
    [1] Broken pipe
    [2] Broken pipe
    ....
    [16] Broken pipe

    [x] = est le numéro du process que j'ai lancé (j'en lance plusieurs à la fois)
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Euh... sans voir le script, malgré nos talents extralucides, difficile de t'aider ;-(
      0
  4. yann747 Messages postés 128 Statut Membre 2
     
    Après avoir comparé des choses comme:

    printenv


    et cette ligne dans ma crontab :

    15 12 * * * printenv > ~/cronenv.txt


    ==> cat ~/cronenv.txt

    Après avoir suivi les bon conseils de zipe31,

    j'ai compris que dans mes scripts, il y avait 2 différentes versions d'un même logiciel. une seule était bonne.
    Merci pour vos réponses!
    0