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: