[shell] coment utiliser une variable dans un bloc << EOF ??

coment utiliser une variable dans un bloc << EOF ?? [shell] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 17-10-2003 à 15:02:19    

promis j'ai cherché, mais j'trouve pô :(
 
soit le script suivant qui doit récupérer tous les matins les logs d'il y a 3 jours :
 
 

Code :
  1. d=`date +%Y%m%d --date '3 days ago'`
  2. ftp -n ftp.monserveur.fr << EOF
  3. user xxxx xxxx
  4. cd mondossier
  5. mget httphits_log_$d_*
  6. EOF


 
les nom des logs sont de la forme suivante :
httphits_log_20031017.log.gz
 
la portion correspondant à la date "20031017" devrait être remplacée par la date calculée et stocker dans $d et pourtant il télécharge tous les logs (et pas eulement ceux de la bonne date), pourquoi?
 
 
j'ai vérifié, si je ne mets que ces 2 lignes là :

Code :
  1. d=`date +%Y%m%d --date '3 days ago'`
  2. echo $d


 
ça renvoit bien "20031014"


Message édité par duch le 17-10-2003 à 15:04:29
Reply

Marsh Posté le 17-10-2003 à 15:02:19   

Reply

Marsh Posté le 17-10-2003 à 15:03:45    

utilise lftp, tu auras deja moins de soucis ...
 
ajoute "set -x" au début de ton script pour voir ce qui se passe

Reply

Marsh Posté le 17-10-2003 à 15:06:33    

merci pour le conseil mais ça doit pouvoir se faire sans installer un autre client, non?
 
j'aime pas installer des trucs pour rien :D

Reply

Marsh Posté le 17-10-2003 à 15:20:59    

mais bon j'ai qd même essayer avec lftp...
 
et ça fait pareil, il me télécharge tous les logs, et pas seulement ceux du jour j.
 
 
et malheusement la commande set -x ne fonctionne pas dans ce cas là, elle ne revoie pas ce qui se passe dans le bloc EOF...
 
voilà ce que j'ai :
 
++ date +%Y%m%d --date '3 days ago'
+ d=20031014
+ ftp -n -i ftp.monserveur.fr
 
 
et après il télécharge tout en silence :D

Reply

Marsh Posté le 17-10-2003 à 15:41:25    

trouvé, il suffisait d'écrire

Code :
  1. mget httphits_log_"$d"_*

au lieu de

Code :
  1. mget httphits_log_$d_*


 
et hop pas besoin de lftp :D

Reply

Sujets relatifs:

Leave a Replay

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