Rechercher : dans
Par :

Script FTP unix

Dernière réponse le 4 jun 2009 à 18:57:59 Deeper, le 4 jun 2009 à 12:15:15 
 Signaler ce message aux modérateurs

Bonjour,
Je souhaite executer un script sur un serveur A qui se connecte en FTP sur un serveur B et qui put un fichier.
Lorsque j'exécute ce script à partir du prompt, je n'ai pas de soucis.
En revanche, j'utilise un logiciel qui execute des commandes unix. Lorsque je lui demande d'executer ce script, la partie FTP ne fonctionne pas.

Mon script.sh :
#!/bin/ksh
. /home/monuser/.profile
remoteserver="monserv"
username="user"
password="pass"
set>toto.txt
ftp -i -n $remoteserver << END_SCRIPT
quote USER $username
quote PASS $password
cd /mondir
put monfic.txt
quit
END_SCRIPT
exit

Je cale complètement.

Merci d'avance

Configuration: Windows XP Internet Explorer 6.0

Meilleures réponses pour « Script FTP unix » dans :
Les logiciels de transfert FTP VoirPour mettre en ligne votre site, vous avez besoin d'un logiciel de transfert FTP. Cette liste n'a pas pour vocation d'être exhaustive, elle se limite notamment à citer des logiciels gratuits. Logiciels Scripts...
Installer un serveur FTP sous Ubuntu VoirSommaire: 1. Installer le serveur FTP 2. Configurer le serveur FTP 2.1 Interdire le FTP anonyme 2.2 Autoriser les utilisateurs locaux à se connecter 2.3 Autoriser les utilisateurs à uploader des fichiers 2.3 Choisir l'interface 3....
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha-Bang Premièrement,...
Télécharger Revo Uninstaller VoirRevo Uninstaller est un logiciel édité par VS Revo Group permettant de faire un nettoyage en profondeur avec diverses fonctionnalités : Nettoyage, désinstallation de programmes avec suppression des clefs de registres périmées. Un mode Chasseur...
Le protocole FTP (File Transfer Protocol) VoirIntroduction au protocole FTP Le protocole FTP (File Transfer Protocol) est, comme son nom l'indique, un protocole de transfert de fichier. La mise en place du protocole FTP date de 1971, date à laquelle un mécanisme de transfert de...
Systèmes UNIX - Le shell VoirIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire entre le système...
Introduction aux systèmes UNIX VoirLe système UNIX Le système Unix est un système d'exploitation multi-utilisateurs, multi-tâches, ce qui signifie qu'il permet à un ordinateur mono ou multi-processeurs de faire exécuter simultanément plusieurs programmes par un ou plusieurs...

1

jipicy, le 4 jun 2009 à 12:39:51

Salut,

Regarde du côté de la commande "expect".

Voir ce thread pour un exemple.
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

2

Deeper, le 4 jun 2009 à 13:56:12

Merci Jipicy,

J'ai le même probème avec expect.
Le script lancé à partir du prompt me transfère bien le fichier, mais dès que je l'exécute à partir du programme, rien en face (malgré que le programme s'exécute bien)

#!/usr/bin/expect -f
set force_conservative 1 ;
set timeout 2
spawn ftp -i monserveur
expect "Name *:"
send "login\r"
expect "Password:"
send "password\r"
expect "ftp>"
send "binary\r"
expect "ftp>"
send "lcd /monrep/\r"
expect "ftp>"
send "put $1\r"
expect "ftp>"
send "quit\r"

Répondre à Deeper

3

jipicy, le 4 jun 2009 à 14:00:15

Parce qu'il faut déclarer les variables passées en paramètres, voir cet autre thread ;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

4

Deeper, le 4 jun 2009 à 15:49:36

Merci Jipicy,

J'ai fait la modif, mais le problème n'est pas seulement là. Auparavant j'avais mis le nom du fichier à puter en dur.
Effectivement maintenant le paramètre passe dans le script.
set nomfic [lindex $argv 0]
send "put $nomfic.sas\r"


Malheureusement lorsque j'exécute le script au travers du logiciel, la partie ftp ne fonctionne toujours pas...

Répondre à Deeper

5

 jipicy, le 4 jun 2009 à 18:57:59

Bon je viens de faire un test chez moi et ça marche bien ;-\

Voilà le script et le déroulement des opérations...

[tmpfs]$ cat foo.sh
#! /usr/bin/expect -f

set force_conservative 1 ;

set timeout 2

set name [lindex $argv 0]

spawn ftp 192.168.1.250
expect "Name (192.168.1.250:jp):"
send "\r"
expect "Password:"
send "xxxxxx\r"
expect "ftp>"
send "cd MDK\r"
expect "ftp>"
send "get $name\r"
expect "ftp>"
send "bye\r"

[tmpfs]$ ./foo.sh ccm.css
spawn ftp 192.168.1.250
Connected to 192.168.1.250.
220 ProFTPD 1.3.2rc3 Server (freenas FTP Server) [::ffff:192.168.1.250]
500 AUTH not understood
Name (192.168.1.250:jp):
331 Password required for jp
Password:
230-Welcome to FreeNAS FTP Server
230 User jp logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd MDK
250 CWD command successful
ftp> get ccm.css
local: ccm.css remote: ccm.css
200 PORT command successful
150 Opening BINARY mode data connection for ccm.css (11445 bytes)
226 Transfer complete
11445 bytes received in 0.0021 seconds (5.2e+03 Kbytes/s)
ftp> 
[tmpfs]$ ls
ccm.css  diff.pdf  email.sent  f1  f2  foo.sh*  foo.sh~* 
[tmpfs]$
;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy