[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Tjs mon pb de cron



> Le 12549ième jour après Epoch,
> OLIVER Patrice écrivait:
> 
> >> Le mardi 11 mai 2004, Baptiste Mathus a écrit...
> >> 
> >> 	bonjour,
> >> 
> >> 
> >> > Comme déjà dit, pour être sur, je fais echo "Hello !" > /tmp/pof
> >> 
> >> Quel echo ? essaie /bin/echo plutôt
> >> essaie de modifier le MAILTO dans le fichier crontab
> >> MAILTO=user
> >
> > je vais aussi tester avec MAILTO=root
> > Cependant, lorsque j'insère la ligne :
> >
> > * * * * * root /bin/echo "Hello !" > /tmp/toto
> >
> >
> > Le fichier toto est correctement créé.
> >
> > Mes scripts sont bien en 755, et devraient donc pouvoir être
> > executés. Qu'en pensez-vous ?
> 
> Toujours la même chose: Tes scripts doivent être très dépendants des
> variables d'environnement et donc ne s'exécutent pas correctement. Tu
> ne reçois pas le message d'erreur car le mail ne doit pas marcher, et
> voilà ...
> 
> Poste tes scripts, ou alors redirige tout vers un fichier !!!
> 
> * * * * * root MON_SCRIPT >> /tmp/MON_SCRIPT.log 2>&1


Voici mon script, mais en faisant  ... >> /tmp/debug, le fichier est vide.

#!/bin/sh
#
# Module      S009_vers_applis
# Auteur      Patrice OLIVER   C.H. BEAUNE
# Cree le     27/04/2004
# Modifie le  27/04/2004
# Objet       scrupter le repertoire /var/almacom/retour et distribuer les
#             fichiers sur les serveurs de SYMPHONIE et MCKESSON via rcp
#
#-----------------------------------------------------------------------------
# 05/05/2004 - PO - Creation du mode debug (option -d en ligne de commande)
#-----------------------------------------------------------------------------
# A faire :
#   Ne conserver qu'un lieu de stockage des logs et faire une tache de purge
##############################################################################

# Variables d'environnement
SHELL=/bin/bash
PATH=.:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
# Repertoires de S009 ........................................................
FLAG=$1                                       # Pour pouvoir passer en debug
DATE=`date +%Y%m%d`                           # Date du jour au format AAMMJJ
FIPARAM=/DEVELOP/dev_sh/teletrans/S009_vers_applis.cfg  # Fichier parametrage
REPALMA=/var/almacom                          # Pour copie log et visu via smb
REPRETOUR=/var/almacom/retour                 # Rep ou Almacom pose les retours
FIRETOUR=`ls $REPRETOUR`                      # Liste des fichiers retour
NBFIRETOUR=`ls $REPRETOUR 2>/dev/null | wc -l` # Nb Fichiers retour
REPLOG=/DEVELOP/dev_sh/teletrans/log/         # Rep des logs dans /DEVELOP
FILOG=S009_vers_applis_$DATE                  # Fichier log
FIDEBUG=/DEVELOP/dev_sh/teletrans/debug/$DATE # Fichier debug
REPARC=/DEVELOP/dev_sh/teletrans/arc          # Rep d'archivage en attendant
                                              # d'archiver sur serveurs cible
REPMAIL=/DEVELOP/dev_sh/teletrans/            # Rep de fichiers mail
FICRADMIN=/DEVELOP/dev_sh/teletrans/mailadmin # Fichier CR admin
MAILADMIN=admin.reseau@ch-beaune.fr           # Email admin reseau
OBJETADMIN="Retour de teletransmissions"

export SHELL PATH
export FLAG DATE FIPARAM REPALMA FIRETOUR REPLOG FILOG FIDEBUG REPARC REPMAIL
export FICRADMIN MAILADMIN OBJETADMIN

>$FIDEBUG

#-----------------------------------------------------------------------------
# Fonction pour creer les entetes de mail
# Parametres :
#     $1 : Expediteur
#     $2 : Adresse de reponse
#     $3 : Destinataire
#     $4 : Objet du mail
#     $5 : Fichier contenant le mail
#-----------------------------------------------------------------------------
function entete_mail()
{
   echo "From: $1" > $5
   echo "Reply-To: $2" >> $5
   echo "To: $3" >> $5
   echo "Subject: $4" >> $5
   echo "MIME-Version: 1.0" >> $5
   echo "Content-Type: text/plain; charset=\"iso-8859-1\"" >> $5
   echo "Content-Transfert-Encoding: 8bit" >> $5
   echo "X-Priority: 1 (Highest)" >> $5
}


#-----------------------------------------------------------------------------
# Fonction pour envoyer un mail aux destinataires des donnees
# Parametres :
#     $1 : Fichier a envoyer
#-----------------------------------------------------------------------------
function envoi_mail ()
{
   # Expedition du mail

   cat $1 | /usr/lib/sendmail -t
}

#-----------------------------------------------------------------------------
# Programme principal
#-----------------------------------------------------------------------------

if [ "$NBFIRETOUR" -gt 0 ]
then
   # Si il y a des fichiers a traiter

   if [ "$FLAG" == "-d" ]
   then
      echo "D E B U G         S 0 0 9 _ v e r s _ a p p l i s        Date : $DATE" >> $FIDEBUG
      echo "======================================================================" >> $FIDEBUG
      echo "+----------------------------+" >> $FIDEBUG
      echo "|   FICHIER DE PARAMETRAGE   |" >> $FIDEBUG
      echo "+----------------------------+" >> $FIDEBUG
      cat $FIPARAM
   fi

   if [ ! -f "$REPLOG$FILOG" ]
   then
      >$REPLOG$FILOG
   fi

   for i in $FIRETOUR
   do
      NATRET=`echo $i | cut -c1-6`
      Ok=`grep $NATRET $FIPARAM | wc -l`

      if [ "$FLAG" == "-d" ]
      then
         echo "" >> $FIDEBUG
         echo "+-----------------------------------------+" >> $FIDEBUG
         echo "|   Traitement du fichier $i   |" >> $FIDEBUG
         echo "+-----------------------------------------+" >> $FIDEBUG

         echo "   Type   = $NATRET" >> $FIDEBUG
         if [ "$Ok" == "1" ]
         then
            echo "   Valide = Oui" >> $FIDEBUG
         else
            echo "   Valide = Non" >> $FIDEBUG
         fi
      fi

      if [ "$Ok" -gt 0 ]
      then
         # On a trouve le retour
         Parametres=`grep $NATRET $FIPARAM`

         Serveur=`echo $Parametres | awk 'BEGIN { FS=":" } { print $2 }'`
         Repertoire=`echo $Parametres | awk 'BEGIN { FS=":" } { print $3 }'`
         FichierCR=`echo $Parametres | awk 'BEGIN { FS=":" } { print $4 }'`
         MailDest=`echo $Parametres | awk 'BEGIN { FS=":" } { print $5}'`
         ObjetMail=`echo $Parametres | awk 'BEGIN { FS=":" } { print $6}'`

         rcp $REPRETOUR/$i $Serveur:$Repertoire/$i
         mv $REPRETOUR/$i $REPARC
         echo "Le fichier $i a ete traite" >> $REPLOG$FILOG

         if [ ! -f "$FichierCR" ]
         then
         	entete_mail "$MAILADMIN" "$MAILADMIN" "$MailDest" "$ObjetMail" "$FichierCR"
         fi
         echo "Le fichier $i est disponible dans $Repertoire sur $Serveur" >> $FichierCR

         if [ "$FLAG" == "-d" ]
         then
            echo "   Params = $Parametres" >> $FIDEBUG
            echo "   Serv   = $Serveur" >> $FIDEBUG
            echo "   Rep    = $Repertoire" >> $FIDEBUG
            echo "   CR     = $FichierCR" >> $FIDEBUG
            echo "   Dest   = $MailDest" >> $FIDEBUG
            echo "   Objet  = $ObjetMail" >> $FIDEBUG
            echo "   Cmde   = rcp $REPRETOUR/$i $Serveur:$Repertoire/$i" >>$FIDEBUG
            echo "   cp vers= $Repertoire"
            echo "" >> $FIDEBUG
            echo "   MAIL ENVOYE A $MailDest :" >> $FIDEBUG
            cat $FichierCR >> $FIDEBUG
         fi

      else
        echo "Le fichier $i n'est pas un retour attendu" >> $REPLOG$FILOG
      fi

   done

   # Envoi par mail des fichiers de compte-rendu

   if [ -f "$FICRADMIN" ]
   then
      rm $FICRADMIN
   fi

   cd $REPMAIL
   FiMail=`ls mail* 2>/dev/null`
   NbMail=`ls mail* 2>/dev/null | wc -l`
   if [ "$NbMail" -gt 0 ]
   then
      # Envoi des mails appropries et composition du mail admin

      for i in `ls mail*`
      do
         envoi_mail $i
         if [ ! -f "$FICRADMIN" ]
         then

            # Ecriture entete de message pour admin

            >$FICRADMIN
            ObjetMail="RETOUR DE TELETRANSMISSIONS"
            entete_mail "$MAILADMIN" "$MAILADMIN" "$MAILADMIN" "$ObjetMail" "$FICRADMIN"
         fi

         NbLignes=`wc -l $i | awk 'BEGIN {FS=" "} {print $1}'`
         NBL=`expr $NbLignes - 8`

         if [ "$FLAG" == "-d" ]
         then
            echo "   NbLigne $i pec = $NBL/$NbLignes"
         fi

         tail -$NBL $i >> $FICRADMIN
         envoi_mail $i
         rm -f $i
      done

      envoi_mail $FICRADMIN

      if [ "$FLAG" == "-d" ]
      then
         echo "" >> $FIDEBUG
         echo "   MAIL ENVOYE A ADMIN.RESEAU :" >> $FIDEBUG
         cat $FICRADMIN >> $FIDEBUG
         echo "======================================================================" >> $FIDEBUG
      fi

      rm -f $FICRADMIN

   fi

   cp $REPLOG$FILOG $REPALMA

fi

exit 0






> 
> 
> -- 
> Pensez à lire la FAQ de la liste avant de poser une question :
> http://wiki.debian.net/?DebianFrench
> 
> Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
> 
> To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> 




Reply to: