Crontab user :s marche pas

Résolu
Bonjour,

Je suis actuellement entrain d'essayer de lancer un script ksh sur Solaris périodiquement par crontab exemple, avec un utilisateur "user".

quand je met :
user> crontab -l user
* * * * * /in/sfp/tmp/dbsmp/dbsmp.ksh >> /dev/null 2>&1
* * * * * /in/sfp/tmp/dbsmp/Remove_old_files.sh > /dev/null 2>&1

mais ça n donne rien, aucun fichier n'est générer !! Même si le script marche parfaitement pour le même user si je l'exécute directement.

Merci
Configuration: Windows XP
Firefox 2.0.0.14

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. voila =)
    j'ai peut etre peu cherché alors ke la solution se trouve juste la :

    http://www.commentcamarche.net/forum/affich 5291726 executer un fichier script sql avec vb net
    1. Modérateur
      Manifestement, il y a un test qui n'a pas d'argument, il faudrait faire afficher les valeurs de $DIRECTORY et $OUTPUTFILE...
      1. =)

        wep vous avez raison quand je met echo $DIRECTORY; echo $OUTPUTFILE dans le script, sur le cronlog j'ai :

        1° /in/smf/tmp/dbsmp
        2°
        3° /in/smf/tmp/dbsmp/dbsmp.ksh: test: argument expected

        (le vide signifie que OUTPUTFILE ne contient rien :s)

        mé que faire

        MErci
      2. Modérateur
        @Symbol_LogicCorriger, mais je ne suis pas fort en script shell...
    2. Modérateur
      Salut,

      y'a un grand classique avec cron, c'est que tes variables d'environnement sont plus ou moins renseignées quand tu lances une commande, c'est généralement pour ça que ça marche en ligne mais que ça ne marche plus en cron.

      Première chose : envoyer les résultats de la commande dans un log, ça signale 99,9% des erreurs...

      * * * * * /in/sfp/tmp/dbsmp/dbsmp.ksh >> /tmp/cronlog 2>&1
      1. Merci pour votre réponse =)

        sur le /tmp/cronlog voila ce que j'ai :

        /in/smf/tmp/dbsmp/dbsmp.ksh: test: argument expected :s

        A+

        voila mon scipt :

        "/in/smf/tmp/dbsmp/dbsmp.ksh" 43 lines, 1430 characters
        #!/bin/ksh

        IN_ID="OSP";
        DIRECTORY="/in/smf/tmp/dbsmp";
        BEGIN_FILENAME="${IN_ID}_SLEE_DBSMP_"

        InitOutput()
        {
        if [ ! -d $DIRECTORY ]
        then
        /usr/bin/mkdir -m 777 $DIRECTORY
        fi
        if [ -f $OUTPUTFILE ]
        then
        return 1;
        else
        echo "file header"
        return 1;
        fi
        return 0;
        }

        Init()
        {
        InitOutput
        numero=0;
        Today=`date '+%m%d%y%n'`
        WTII=`date '+%H:%M:%S'`
        OUTPUTFILE="${DIRECTORY}/$BEGIN_FILENAME$Today";
        }

        Init
        ORACLE_SID=SMP;export ORACLE_SID; /in/oracle/bin/sqlplus ppssdprdc11/ppssdprdc11@PSMF.world @/in/smf/tmp/dbsmp/sqldbsmp.sql

        while read line
        do
        case $numero in
        3*) echo "$WTII Activate: $line";;
        8*) echo "$WTII Inactivate : $line";;
        13*) echo "$WTII Valide : $line";;
        esac
        numero=$(($numero+1))
        done < temp2.txt >> $OUTPUTFILE

        Merci