Upload ftp

Upload ftp - Shell/Batch - Programmation

Marsh Posté le 23-05-2006 à 14:50:08    

Bonjour,  
 
J'ai voulu écrire un petit script pour uploader 3 fichiers sur un serveur ftp (que je pourrai alors executer toutes les x minutes), mais malheureusement il y a un bug et je ne vois pas pourquoi, raison pour laquelle je demande votre aide.
 
Voici le script en question :
 

Code :
  1. #!/bin/bash
  2. serveur_ftp=www.monserveur.ch
  3. login_ftp=moi
  4. mdp_ftp=*****
  5. backup_dir=/srv/www/htdocs/meteo
  6. cd $backup_dir
  7. ftp -n $serveur_ftp <<ENDE_FTP
  8. user $login_ftp $mdp_ftp
  9. hash
  10. prompt
  11. put $meteo2.php
  12. put $data.txt
  13. put $getmeteo.php
  14. bye
  15. ENDE_FTP


 
Et voici le résultat :

Code :
  1. moi@linux:~/Documents> ./ftp
  2. usage: ftp host-name [port]


 
Pourquoi cela ne marche-t-il pas ?  :cry:

Reply

Marsh Posté le 23-05-2006 à 14:50:08   

Reply

Marsh Posté le 23-05-2006 à 16:20:18    

Parce que le script s'arrête à la ligne 10, qui d'ailleurs n'est pas dans la bonne syntaxe (cf. ligne 2 du résultat).
 
Les lignes 11-17 sont à stockées dans un script à part qui sera appelé par la ligne 10 modifiée en conséquentParce que le script s'arrête à la ligne 10.  
 
Les lignes 11-17 sont à stockées dans un script à part qui sera appelé par la ligne 10 modifiée en conséquent.

Reply

Marsh Posté le 23-05-2006 à 16:39:40    

wackevat a écrit :

Parce que le script s'arrête à la ligne 10, qui d'ailleurs n'est pas dans la bonne syntaxe (cf. ligne 2 du résultat).
 
Les lignes 11-17 sont à stockées dans un script à part qui sera appelé par la ligne 10 modifiée en conséquentParce que le script s'arrête à la ligne 10.  
 
Les lignes 11-17 sont à stockées dans un script à part qui sera appelé par la ligne 10 modifiée en conséquent.


 
Merci de ta réponse, mais là je ne comprends pas de quelles modifications tu parles (peux-tu illustrer ?). Je reconnais volontiers ne pas être expert en shell (loin de là), mais pourquoi le script s'arrête-il à la ligne 10 ?

Reply

Marsh Posté le 24-05-2006 à 12:52:26    

up ... personne :'(

Reply

Marsh Posté le 24-05-2006 à 23:52:19    

tjs personne ? :'( :'(

Reply

Marsh Posté le 02-06-2006 à 15:34:05    

greeeg a écrit :

tjs personne ?  :'(   :'(

 


bon, j'ai pas tout suivi ni analyser le problème, mais je pense que ce qu'il veut te dire, c'est que tu dois disposer d'un autre fichier script à appeler dans ce meme fichier.
perso, lorsque ça m'arrive j'essai en premier lieu de concaterner toutes les commandes dans une variable, que je passe en paramètre.
Exemple 1:
  L_CMD='put \"fichier1\"'
 
L_CMD='$L_CMD;put \"fichier2\"'
 

 

et j'envoi ça dans en paramètre
    ftp machinchose $L_CMD
(par exemple pour executer les requetes sql)

 

Autre solution, generer les commandes dans un fichier, est l'utiliser
 L_FILE="/tmp/file.$$"
 echo "put \"fichier1\"">$L_FILE
 echo "put \"fichier2\"">$L_FILE
 

 

...
 ftp machinchose < $L_FILE

 

voilà. j'éspere ne pas avoir fait d'erreur, mais si il y en a, c'est juste pour comprendre le principe
Attention a ta ligne 10: tu dois envoyer en meme temps le login, password et commande (si mes souvenirs sont exacte, perso on utilise scp dans ma boite).

 


A+

 


Reply

Marsh Posté le 03-08-2008 à 22:36:52    

greeeg a écrit :

Bonjour,  
 
J'ai voulu écrire un petit script pour uploader 3 fichiers sur un serveur ftp (que je pourrai alors executer toutes les x minutes), mais malheureusement il y a un bug et je ne vois pas pourquoi, raison pour laquelle je demande votre aide.
 
Voici le script en question :
 

Code :
  1. #!/bin/bash
  2. serveur_ftp=www.monserveur.ch
  3. login_ftp=moi
  4. mdp_ftp=*****
  5. backup_dir=/srv/www/htdocs/meteo
  6. cd $backup_dir
  7. ftp -n $serveur_ftp <<ENDE_FTP
  8. user $login_ftp $mdp_ftp
  9. hash
  10. prompt
  11. put $meteo2.php
  12. put $data.txt
  13. put $getmeteo.php
  14. bye
  15. ENDE_FTP


 
Et voici le résultat :

Code :
  1. moi@linux:~/Documents> ./ftp
  2. usage: ftp host-name [port]


 
Pourquoi cela ne marche-t-il pas ?  :cry:


Vous etes perdu. Vu la date ... mais bon si quelqu'un a le meme probleme un jour.
En faisant "./ftp " il a pris la commande "ftp" donc il fallait mettre un serveur dériere, d'ou le message ftp host-name [port]
T'aurais du faire ./ftp.sh  ou meme  sh ftp.sh
 

Reply

Sujets relatifs:

Leave a Replay

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