[Cron] Script qui marche plus via cron (tar / wget / uuencode / mail)

Script qui marche plus via cron (tar / wget / uuencode / mail) [Cron] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 10-12-2005 à 14:52:14    

Bonjour,
 
j'ai fait un script, qui fonctionne très bien quand je le lance depuis une console root. Ce script lit une boite mail d'un utilisateur (webmailer) et à partir de là envoie des mails avec une page web en pièce jointe.
 
Le script fonctionne très bien quand il est lancé à la main, en revanche, quand il est lancé par le cron, il n'y a pas la pièce jointe dans les mails envoyés !
 
J'ai l'impression que tout le problème est entre les lignes 24 et 26.
 
Une idée ?
 
code :

Code :
  1. #!/bin/sh
  2. mkdir /tmp/webmailer
  3. touch /var/mail/webmailer
  4. cat /var/mail/webmailer | grep -e "From:" -e "Subject:" | sed -e "s/.*<\([a-z]*\.[a-z]*@[a-z]*.fr\)>.*/\1/g" -e "s/Subject: //g" > /tmp/webmailer.txt
  5. webmailer_url=""
  6. webmailer_mail=""
  7. webmailer_ope="m"
  8. while read ligne
  9. do
  10.         if [ $webmailer_ope == "m" ]
  11.         then
  12.                 webmailer_mail=$ligne
  13.                 webmailer_ope="u"
  14.         else
  15.                 webmailer_url=$ligne
  16.                 webmailer_ope="m"
  17.                 wget -P /tmp/webmailer/ -q $webmailer_url
  18.                 tar cvf /tmp/webmailer.tar /tmp/webmailer
  19.                 uuencode /tmp/webmailer.tar archive.tar | mail -s "$webmailer_url" "$webmailer_mail"
  20.                 echo "rm /tmp/webmailer/*"
  21.         fi
  22. done < /tmp/webmailer.txt
  23. echo "rm /tmp/webmailer.tar"
  24. rm /tmp/webmailer.txt
  25. echo "rmdir /tmp/webmailer"
  26. rm /var/mail/webmailer


Message édité par ceyquem le 10-12-2005 à 19:28:32
Reply

Marsh Posté le 10-12-2005 à 14:52:14   

Reply

Marsh Posté le 10-12-2005 à 15:13:57    

Essaye de faire une redirection de la commande tar dans un fichier.

Reply

Marsh Posté le 10-12-2005 à 15:23:29    

j'ai trouvé en fait : la commande cd ne semble pas fonctionner en cron : j'ai tout remplacé par des chemins absolus.
 
L'inconvénient est que j'ai la hiérarchie /tmp/webmailer dans mon archive tar, mais au moins ça marche. Si quelqu'un sait comment faire le tar sans prendre en compte les chemins, je suis preneur :)
 
Merci :jap:

Reply

Marsh Posté le 10-12-2005 à 19:27:34    

En fait non mon problème n'est pas résolu. En revanche, je l'ai clairement identifié :
- la commande wget fonctionne lorsque je lance le script manuellement,
- et plante lorsque le script est lancé par cron
 
la commande en question :

Code :
  1. wget -P /tmp/webmailer/ -q $webmailer_url
  2. tar cvf /tmp/webmailer.tar /tmp/webmailer


 
l'option -P me sert à positionner le dossier destination de la page téléchargée afin de la mettre dans un tar avec la commande suivante. Lorsque le cron lance le script, le tar envoyé est vide !

Reply

Marsh Posté le 10-12-2005 à 19:32:24    

essaye de faire une redirection de la commande tar dans un fichier :

Code :
  1. tar cvf /tmp/webmailer.tar /tmp/webmailer 2> /tmp/log_tar


même chose pour wget


Message édité par jlighty le 10-12-2005 à 19:43:22
Reply

Marsh Posté le 10-12-2005 à 19:37:33    

voilà le code que j'ai mis comme tu me l'as suggéré :
 

Code :
  1. wget -P /tmp/webmailer/ $webmailer_url > /tmp/webmailer_wget.log
  2. tar cvf /tmp/webmailer.tar /tmp/webmailer &2> /tmp/webmailer_tar.log


 
voilà ce que j'ai obtenu :
 

Code :
  1. root@triforce /tmp #cat /tmp/webmailer_wget.log
  2. root@triforce /tmp #cat /tmp/webmailer_tar.log
  3. root@triforce /tmp #


 
des fichiers vides !! :/

Reply

Marsh Posté le 10-12-2005 à 19:41:37    

/tmp/webmailer contient des fichiers ?
sinon tu peux réessayer avec ça :

Code :
  1. wget -P /tmp/webmailer/ $webmailer_url > /tmp/log 2>&1


même chose pour tar


Message édité par jlighty le 10-12-2005 à 19:45:07
Reply

Marsh Posté le 10-12-2005 à 19:45:11    

nan nan, le dossier est vide.
je pense vraiment que la commande wget plante car le tar est vide mais contient quand même les dossiers /tmp et /tmp/webmailer.
j'essaie la commande que tu me donnes

Reply

Marsh Posté le 10-12-2005 à 19:48:33    

résultat :
 

Code :
  1. /root/scripts/webmailer.sh[28]: wget: not found

Reply

Marsh Posté le 10-12-2005 à 19:49:43    

je crois que je comprends ce qu'il me reste à faire :)

Reply

Marsh Posté le 10-12-2005 à 19:49:43   

Reply

Marsh Posté le 10-12-2005 à 19:51:56    

oui /usr/bin/wget ou installer wget ;)

Reply

Marsh Posté le 10-12-2005 à 19:54:53    

en fait /usr/local/bin/wget, mais cela n'a quand même pas marché !! je capte pas trop là. je continue les tests comme tu me l'as montré :)

Reply

Marsh Posté le 10-12-2005 à 19:57:02    

cette fois-ci le répertoire /tmp/webmailer contient des fichiers ?

Reply

Marsh Posté le 10-12-2005 à 20:09:40    

ça marche !!! merci beaucoup jlighty !
 
pour info j'ai remplacé le nom de toutes les commandes par leur chemin absolu...
 
Bonne soirée :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed