PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Forums Hébergement > Forum Serveur - Sécurité et techniques > linux.debian.user.french > Script dans crontab et redirection sortie standard
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
linux.debian.user.french Forum sur Linux Debian. Debian-user-french@lists.debian.org

Script dans crontab et redirection sortie standard

Réponse
 
LinkBack Outils de la discussion
Vieux 27/06/2006, 08h10   #1
Seb
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Script dans crontab et redirection sortie standard

Bonjour,

Voici mon problème du matin. Je cherche à faire un script qui m'envoie
régulièrement par mail les relevés de température effectués sur mon
serveur. Le script appelle des commandes et redirrige leur sortie vers
un fichier. Une fois terminé, ce fichier est envoyé par mail.

Lorsque je lance le script à la main depuis un terminal, tout est OK mon
fichier contient bien les relevés de température de la carte mère et des
disques.
Lorsque je l'inscrit dans le crontab, je ne récupère que la sortie de la
commande "mbmon", pas de température disque dans le fichier...

J'ai retourné le problème dans pas mal de sens et je ne vois pas ce qui
pourrait merder...

Si quelqu'un veut bien y jeter un oeil...

Merci d'avance.


#!/bin/sh
# Envoie par e-mail les relevés de température

TMP_DIR=/tmp
TMP_FILE=temp.txt
E_MAIL=user@provider.tld
SUBJECT="`hostname` - Relevés de température"

cd $TMP_DIR
rm -f $TMP_FILE

# Message d'accueil
echo "Relevés de température effectués le `date`" > $TMP_FILE

# Carte mère
echo >> $TMP_FILE
echo "Carte mère :`mbmon -c 1`" >> $TMP_FILE

# Disques
echo >> $TMP_FILE
echo "Disques :" >> $TMP_FILE
echo "`hddtemp /dev/hda`" >> $TMP_FILE
echo "`hddtemp /dev/hdb`" >> $TMP_FILE

# On repasse en ISO-8859-15
recode UTF-8..ISO-8859-15 $TMP_DIR/$TMP_FILE

# Envoi de l'e-mail
mail -s "$SUBJECT" $E_MAIL < $TMP_DIR/$TMP_FILE


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter 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
  Réponse avec citation
Vieux 27/06/2006, 08h50   #2
pingouin osmolateur
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re : Script dans crontab et redirection sortie standard

Salut
Sous quelle identité tu exécutes ton script ?

Sinon ta commande d'envoie de mail me parait suspect.
j'aurais utiliser la commande suivante
mail -s <subject> user <<EOF
<body>
EOF

Que contient ton fichier $TMP_DIR/$TMP_FILE a la fin de l'exécution du script?

Voila quelques idées.
AC


----- Message d'origine ----
De : Seb <sebnewsletter@free.fr>
À : debian-user-french@lists.debian.org
Envoyé le : Mardi, 27 Juin 2006, 9h05mn 13s
Objet : Script dans crontab et redirection sortie standard

Bonjour,

Voici mon problème du matin. Je cherche à faire un script qui m'envoie
régulièrement par mail les relevés de température effectués sur mon
serveur. Le script appelle des commandes et redirrige leur sortie vers
un fichier. Une fois terminé, ce fichier est envoyé par mail.

Lorsque je lance le script à la main depuis un terminal, tout est OK mon
fichier contient bien les relevés de température de la carte mère et des
disques.
Lorsque je l'inscrit dans le crontab, je ne récupère que la sortie de la
commande "mbmon", pas de température disque dans le fichier...

J'ai retourné le problème dans pas mal de sens et je ne vois pas ce qui
pourrait merder...

Si quelqu'un veut bien y jeter un oeil...

Merci d'avance.


#!/bin/sh
# Envoie par e-mail les relevés de température

TMP_DIR=/tmp
TMP_FILE=temp.txt
E_MAIL=user@provider.tld
SUBJECT="`hostname` - Relevés de température"

cd $TMP_DIR
rm -f $TMP_FILE

# Message d'accueil
echo "Relevés de température effectués le `date`" > $TMP_FILE

# Carte mère
echo >> $TMP_FILE
echo "Carte mère :`mbmon -c 1`" >> $TMP_FILE

# Disques
echo >> $TMP_FILE
echo "Disques :" >> $TMP_FILE
echo "`hddtemp /dev/hda`" >> $TMP_FILE
echo "`hddtemp /dev/hdb`" >> $TMP_FILE

# On repasse en ISO-8859-15
recode UTF-8..ISO-8859-15 $TMP_DIR/$TMP_FILE

# Envoi de l'e-mail
mail -s "$SUBJECT" $E_MAIL < $TMP_DIR/$TMP_FILE


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter 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
  Réponse avec citation
Vieux 27/06/2006, 08h50   #3
Jacques L'helgoualc'h
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Script dans crontab et redirection sortie standard

Seb a écrit, mardi 27 juin 2006, à 09:05 :
> Bonjour,


bonjour,

> [...]
> Lorsque je lance le script à la main depuis un terminal, tout est OK mon
> fichier contient bien les relevés de température de la carte mère et des
> disques.
> Lorsque je l'inscrit dans le crontab, je ne récupère que la sortie de la
> commande "mbmon", pas de température disque dans le fichier...
>
> J'ai retourné le problème dans pas mal de sens et je ne vois pas ce qui
> pourrait merder...


Le $PATH en crontab est réduit à /usr/bin:/bin (man 5 crontab), donc tu
aurais ce problème avec un hddtemp maison dans /usr/local/bin/.

Par aillleurs :

$ ls -l $(which hddtemp)
lrwxrwxrwx 1 root root ... /usr/bin/hddtemp -> /usr/sbin/hddtemp

$ ls -l /usr/sbin/hddtemp
-rwsr-xr-x 1 root root ... /usr/sbin/hddtemp
___^

donc vérifie que ton binaire est bien setuid root ?


N.B. on peut aussi simplifier

echo "`hddtemp /dev/hda`" >> $TMP_FILE

en

hddtemp /dev/hda >> "$TMP_FILE"

--
Jacques L'helgoualc'h


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter 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
  Réponse avec citation
Vieux 27/06/2006, 09h00   #4
kolter
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Script dans crontab et redirection sortie standard


en un petit peu amélioré (non testé) :

----------------------------------

#!/bin/sh

E_MAIL="user@provider.tld"
SUBJECT="$(hostname) - Relevés de température"

(
# Message d'accueil
echo "Relevés de température effectués le $(date)"

# Carte mère
echo
echo "Carte mère : $(mbmon -c 1 2>&1)"

# Disques
echo
echo "Disques :"
hddtemp /dev/hda 2>&1
hddtemp /dev/hdb 2>&1
) | iconv -f UTF-8 -t ISO-8859-15 | mail -s "$SUBJECT" "$E_MAIL"

---------------------------------

M.

--
mail : kolter@openics.org
gpg : 0x414EC36E
jid : kolter@im.openics.org
irc : kolter@freenode


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter 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
  Réponse avec citation
Vieux 27/06/2006, 09h30   #5
Seb
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Script dans crontab et redirection sortie standard

Jacques L'helgoualc'h a écrit :

[...]

> Par aillleurs :
>
> $ ls -l $(which hddtemp)
> lrwxrwxrwx 1 root root ... /usr/bin/hddtemp -> /usr/sbin/hddtemp
>
> $ ls -l /usr/sbin/hddtemp
> -rwsr-xr-x 1 root root ... /usr/sbin/hddtemp
> ___^
>
> donc vérifie que ton binaire est bien setuid root ?


Problème de $PATH... c'est bien vu ! je vais jeter un coup d'oeil.

> N.B. on peut aussi simplifier
>
> echo "`hddtemp /dev/hda`" >> $TMP_FILE
>
> en
>
> hddtemp /dev/hda >> "$TMP_FILE"


C'était la première version du script et j'ai ajouté le echo en pensant
que c'était là la cause de mon problème.

J'essaye les quelques pistes qui m'ont été suggérées et je fais un feedback.

Seb


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter 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
  Réponse avec citation
Vieux 27/06/2006, 10h10   #6
Seb
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Script dans crontab et redirection sortie standard

Seb a écrit :
> Problème de $PATH... c'est bien vu ! je vais jeter un coup d'oeil.


On y est. C'était bien un problème de $PATH. hddtemp est dans /usr/sbin.
J'ai ajouté ce chemin au $PATH dans mon script et ça fonctionne
correctement.

J'ai pris la version améliorée du script fournie par M. (j'espère que
c'est sous GPL...).

Il ne me reste plus qu'un petit problème d'encodage des caractères à
gérer mais je devrais m'en sortir.

Merci à tous.

Seb


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter 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
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 14h05.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,14475 seconds with 14 queries