Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Mots clés Nom d'utilisateur
Messages sans réponse

[Unix] FTP sous Unix

Trezeg, le mercredi 17 janvier 2007 à 14:07:18 
 Signaler ce message aux modérateurs

Bonjour,
J'aimerais savoir s'il était possible de supprimer les demandes de confirmation lors d'un FTP sous Unix.
Plus precisemment, je voudrais lancer la commande suivante dans mon shell:

SRV_FILE=monServeur
CMD_DIR=monCompte/ftp
CMD_FILE=mesCommandes.cmd
SRV_FTP=monServeurCible
ftp -i $SRV_FILE/$CMD_DIR/$CMD_FILE $SRV_FTP
Le contenu du ficher CMD_FILE est le suivant:
ocpa
ftp_ocpa
binary
lcd ../data/Appli/Retour/PourTransmettre
rm -f PTZ_I
put PTZ
mv PTZ_I.LST PTZ_I
put PTZ_I
mv *.csv ./../Transmis
rm -f *.tmp
quit
Je voudrais que le contenu du fichier CMD_FILE puisse etre exécuté sans qu'il ne soit demandé de confirmation.

Merci pour votre aide.

1

jipicy, le mercredi 17 janvier 2007 à 18:44:41
  • +1

Salut,

Regarde du côté de la commande "expect" (man expect) et :
http://www.oreilly.com/catalog/expect/chapter/ch03.html
http://expect.nist.gov/example/

;-)) Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

2

Trezeg, le lundi 22 janvier 2007 à 17:34:48

Merci jipicy, mais je ne suis pas très à mon aise avec la langue de shakespeare... :-(
Cela dit, j'ai bidouillé un truc (que je ne peux hélas pas tester pour le moment) avec ce que j'ai compris de ces tutoriaux. La syntaxe suivante est-elle correcte ?

expect "Name*:"
send "ocpa\r"
expect "Password:"
send "ftp_ocpa\r"
expect "ftp>"
send "binary\r"
expect "ftp>"
send "lcd ../data/Appli/Retour/PourTransmettre\r"
expect "550*ftp>" exit "250*ftp>"
send "rm -f PTZ_I\r"
expect "550*ftp>" exit "250*ftp>"
send "put PTZ\r"
expect "550*ftp>" exit "200*226*ftp>"
send "mv PTZ_I.LST PTZ_I\r"
expect "550*ftp>" exit "200*226*ftp>"
send "put PTZ_I\r"
expect "550*ftp>" exit "200*226*ftp>"
send "mv *.csv ./../Transmis\r"
expect "550*ftp>" exit "200*226*ftp>"
send "rm -f *.tmp\r"
expect "550*ftp>" exit "200*226*ftp>"
send "quit\r"

Dois-je lancer le contenu de ce fichier (que je nomme CMD_FILE) de la manière suivante ?
$ ftp -i $SRV_FILE/$CMD_DIR/$$CMD_FILE $SRV_FTP.
Y a-t-il d'autres commandes à prévoir pour éviter que le prompt ftp ne me demande confirmation ?

Merci.

Trezeg

Répondre à Trezeg

3

Trezeg, le mardi 23 janvier 2007 à 18:25:09

Re-hello,

J'ai pu finalement tester quelque chose utilisant "expect":

#!/bin/ksh
SRV_FTP=neptune.net
ftp -i $SRV_FTP
expect "Name*:"
send "opercti\r"
expect "Password:"
send "opercti\r"
expect "ftp>"
send "binary\r"
expect "ftp>"
send "lcd ../data/OCP/805178/RetourRAPI/PourTransmettre\r"
expect "550*ftp>" exit "250*ftp>"
send "put temoin\r"
expect "550*ftp>" exit "200*226*ftp>"
send "quit\r"
Voici ce que j'obtiens:
Connected to neptune.net.
220 neptune FTP server (Version 1.1.214.4(PHNE_23950) Tue May 22 05:49:01 GMT 20
01) ready.
Remote system type is UNIX.
Using binary mode to transfer files.
CCS-Init-extranet.sh: expect: command not found
CCS-Init-extranet.sh: send: command not found
CCS-Init-extranet.sh: expect: command not found
CCS-Init-extranet.sh: send: command not found
CCS-Init-extranet.sh: expect: command not found
CCS-Init-extranet.sh: send: command not found
CCS-Init-extranet.sh: expect: command not found
CCS-Init-extranet.sh: send: command not found
CCS-Init-extranet.sh: expect: command not found
CCS-Init-extranet.sh: send: command not found
CCS-Init-extranet.sh: expect: command not found
CCS-Init-extranet.sh: send: command not found 
Il n'aime pas trop les expect et send... Le problème est que le package n'est pas dans le systeme... Quelqu'un aurait une solution alternative pour utiliser ftp sans interaction ou bien le package est-il imperatif ? Dans ce cas, où le trouver ?
Merci infiniment,
Trezeg

Répondre à Trezeg

4

jipicy, le mardi 23 janvier 2007 à 18:35:48
  • +1

Salut,

Essaie plutôt :

#!/usr/bin/expect -f

set force_conservative 1 ;

set timeout 2
spawn ftp -i neptune.net
expect "Name*:"
send "opercti\r"
expect "Password:"
send "opercti\r"
expect "ftp>"
send "binary\r"
expect "ftp>"
send "lcd ../data/OCP/805178/RetourRAPI/PourTransmettre\r"
expect "550*ftp>" exit "250*ftp>"
send "put temoin\r"
expect "550*ftp>" exit "200*226*ftp>"
send "quit\r"
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

5

Trezeg, le mardi 23 janvier 2007 à 18:51:06

Salut jipicy,
j'obtiens les memes messages d'erreur

./CCS-Init-extranet.sh[22]: spawn:  not found
./CCS-Init-extranet.sh[23]: expect:  not found
./CCS-Init-extranet.sh[24]: send:  not found
./CCS-Init-extranet.sh[25]: expect:  not found
./CCS-Init-extranet.sh[26]: send:  not found
./CCS-Init-extranet.sh[27]: expect:  not found
./CCS-Init-extranet.sh[28]: send:  not found
./CCS-Init-extranet.sh[29]: expect:  not found
./CCS-Init-extranet.sh[30]: send:  not found
./CCS-Init-extranet.sh[31]: expect:  not found
./CCS-Init-extranet.sh[32]: send:  not found
./CCS-Init-extranet.sh[33]: expect:  not found
./CCS-Init-extranet.sh[34]: send:  not found 
J'ai fouilé dans le /usr/bin mais je ne vois aucune trace de la commande expect
Amclt,
Trezeg

Répondre à Trezeg

6

jipicy, le mardi 23 janvier 2007 à 18:55:12

Re-

Le paquet n'est tout simplement pas installé peut être :-\
Ou alors il est ailleurs...

Fait une recherche avec :

whereis expect
ou avec :
locate expect
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

7

Trezeg, le mercredi 24 janvier 2007 à 11:00:00

Hello,
Voici les résultats de mes recherches :

$ whereis expect
expect:
$ locate expect
ksh: locate:  not found
Je ne sais pas comment interpréter le résultat de ce whereis...
Est-ce un message d'erreur ?

Amclt,

Trezg

Répondre à Trezeg

8

jipicy, le mercredi 24 janvier 2007 à 12:44:21

Re-

Je ne sais pas comment interpréter le résultat de ce whereis...
Est-ce un message d'erreur ?

Non, ça veut tout simplement dire qu'il ne trouve pas la commande dans les répertoires où elle serait susceptible de se trouver.
En deux mots, la commande n'est pas installée ;-(

;-) Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

9

Trezeg, le mercredi 24 janvier 2007 à 14:13:44

Hello,
J'ai trouvé un truc qui marche à peu près :)))

#!/bin/bash
#!/bin/ksh
ftp -n $SRV_FTP <<Fin-de-Session
user $monUser $monPassword
binary
lcd ../data/OCP/805178/Retour/PourTransmettre
put temoin
delete temoin2
bye
Mais il y a un hic... Après avoir interpreté le Bye, le shell se termine avec le message suivant
Local directory now /data/OCP/805178/Retour/PourTransmettre
alors qu'il y a d'autres instructions qui suivent dans ce meme shell...
Y'aurait-il un moyen de continuer ? J'ai ajouté un & wait après le Bye mais rien n'y fait.

Merci

Trezeg

Répondre à Trezeg

10

jipicy, le mercredi 24 janvier 2007 à 14:31:44

Re-

Essaie de mettre toute ta partie "ftp" entre parenthèses (afin de faire exécuter l'ensemble par un shell fils...) :

(
ftp -n $SRV_FTP <<Fin-de-Session
user $monUser $monPassword
binary
lcd ../data/OCP/805178/Retour/PourTransmettre
put temoin
delete temoin2
bye
)
bla...
bla...
;-)) Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

11

[Dal], le mercredi 24 janvier 2007 à 14:37:06
  • +1

Salut,

L'étiquette "Fin-de-Session" doit se trouver à la fin de ta session ftp, après le bye, pour que le reste de ton script cesse d'être envoyé sur le stdin de la commande ftp et continue d'être interprété par ton interpréteur de commandes.

Donc :

(...)
delete temoin2
bye
Fin-de-Session

(ici la suite de ton script)



Dal

Répondre à [Dal]

12

 Trezeg, le mercredi 24 janvier 2007 à 14:44:04

Ca marche NI-KEL :)))
Merci à vous deux !

Trezeg

Répondre à Trezeg
Transfert ftp entre unix et windows salut, je veux copier le contenu d'un fichier (ou le fichier lui meme) en utilisant le transfert ftp d'une station Unix vers une station Windows. voulez vous bien m'aider, et merci d'avance . dieseus www.commentcamarche.net/forum/affich-1140120-transfert-ftp-entre-unix-et-windows
Utilisation de la commande ftp Le protocole FTP FTP (File Transfer Protocol) est un protocole, c'est-à-dire un langage standard de communication entre deux machines, permettant à des machines de types différents (ou dont le système d'exploitation est différent) de transférer des... www.commentcamarche.net/contents/utile/ftp.php3
Commande ftp pour copier un repertoire (Résolu) Bonjour à tous, Je voudrais copier l'intégralité d'un repertoire qui ce trouve sur un ftp. Avec mget * je peux copier les fichiers mais pas les repertoires. Vous auriez les parametres ou une commande permettant de copier l'intégralité de mon... www.commentcamarche.net/forum/affich-1332787-commande-ftp-pour-copier-un-repertoire
Code pour télécommande universelleTélécommande universelle Philips Télécommande universelle Thomson ROC Télécommande universelle All for one Télécommande universelle Star Choice Télécommande universelle Marmitek Télécommande universelle Lifetec LT Télécommande universelle... www.commentcamarche.net/faq/sujet-2469-code-pour-telecommande-universelle
Installer un serveur FTP sous WindowsVersion rapide Version un peu moins rapide (mais plus propre) Version serveur propre Liens Pour aller plus loin : Accédez à votre serveur FTP n'importe où dans le monde Notes Version rapide VITE, JE VEUX INSTALLER UN SERVEUR FTP TOUT... www.commentcamarche.net/faq/sujet-3028-installer-un-serveur-ftp-sous-windows
Installer un serveur FTP sous UbuntuSommaire: 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.... www.commentcamarche.net/faq/sujet-6336-installer-un-serveur-ftp-sous-ubuntu
[FTP] Commande GET pour répertoiresBonjour, Je souhaite transférer via FTP en ligne de commandes des répertoires, quelle est la syntaxe ? Merci. www.commentcamarche.net/forum/affich-2931214-ftp-commande-get-pour-repertoires
Script unix pour un FTP recursif ?j'ai besoin de transferer via FTP tout le contenu d'un repertoire pour ce faire, je n'ai accès comme client ftp qu'à la commande ftp du shell unix. Est-il possible de faire un script permettant d'envoyer tout le contenu d'un repertoire (dossiers et... www.commentcamarche.net/forum/affich-331110-script-unix-pour-un-ftp-recursif
FTP et UnixBonjour, je travaille actuellement sur 3 plates-formes Unix (Aix, Solaris et Tru64). Notre objectif est d'avoir toutes les traces de la commande ftp sur ces serveurs. Actuellement avec les logs, on arrive à avoir certaines traces telles que le login... www.commentcamarche.net/forum/affich-1227852-ftp-et-unix
Télécharger HP Universal Print Driver (UPD) PCL 5Les pilotes HP UPD (Universal Print Driver) sont des pilotes unifiés compatibles avec toutes les imprimantes de la gamme HP LaserJet et HP Color LaserJet. www.commentcamarche.net/telecharger/telecharger-34056545-hp-universal-print-driver-upd-pcl-5
Télécharger Revo UninstallerRevo Uninstaller est logiciel de nettoyage en profondeur avec diverses fonctionnalités : Nettoyage, désinstalleur de programmes avec suppression des clefs de registres périmées. Un mode Chasseur vous facilite vos tâches et permet de supprimer les... www.commentcamarche.net/telecharger/telecharger-34055245-revo-uninstaller
Télécharger WLM Universal Patcher++WLM Universal Patcher est un patch universel pour MSN (Windows Live Messenger) permettant : d'ouvrir plusieurs sessions simultanément de masquer les bannières publicitaires de masquer les onglets de masquer la barre de publicités de... www.commentcamarche.net/telecharger/telecharger-34055113-wlm-universal-patcher
Mortal Kombat vs. DC Universevs ., Nb. de joueurs hors-ligne:1, Développeur:Midway Amusement Games, Genre:Combat, Other Names:MK vs DC, Mortal Kombat vs. DC Universe, Mortal Kombat vs. DC Comics Universe www.commentcamarche.net/guide/1115715-mortal-kombat-vs-dc-universe
Mortal Kombat vs. DC Universevs ., Genre:Combat, Nb. de joueurs hors-ligne:1, Développeur:Midway Amusement Games, Autres:MK vs DC, Mortal Kombat vs. DC Universe, Mortal Kombat vs. DC Comics Universe, Genre:Combat, Nb. de joueurs hors-ligne:1, Développeur:Midway Amusement... www.commentcamarche.net/guide/1115718-mortal-kombat-vs-dc-universe
Phantasy Star Universe: Ambition of the IlluminusOnline enabled, Other Names:Phantasy Star Universe 2: Ambition of Illuminus, Phantasy Star Universe: Illuminas no Yabou (UK), Genre:Online RPG, Développeur:Sonic Team, Divers:Online, Description:This is expansion pack, requires the full version of Phantas www.commentcamarche.net/guide/977932-phantasy-star-universe-ambition-of-the-illuminus
Le prix de l'iPhone pourrait baisser de moitié aux Etats-Unis(Paris - Relax news) - Selon une information révélée par le magazine américain Fortune, l'opérateur AT&T, qui détient l'exclusivité de la vente de l'iPhone aux Etats-Unis, pourrait bientôt subventionner le smartphone d'Apple. L'appareil ne coûterait... www.commentcamarche.net/actualites/le-prix-de-l-iphone-pourrait-baisser-de-moitie-aux-etats-unis-5846591-actualite.php3
Les commandes FTPLe protocole FTP FTP (File Transfer Protocol) est un protocole, c'est-à-dire un langage standard de communication entre deux machines, permettant à des machines de types différents (ou dont le système d'exploitation est différent) de... www.commentcamarche.net/contents/outils-reseau/commandes-ftp.php3
Le protocole FTP (File Transfer Protocol)Introduction 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... www.commentcamarche.net/contents/internet/ftp.php3
Le bus USB (Universal Serial Bus)Présentation du bus USB Le bus USB (Universal Serial Bus, en français Bus série universel) est, comme son nom l'indique, basé sur une architecture de type série. Il s'agit toutefois d'une interface entrée-sortie beaucoup plus rapide que les ports... www.commentcamarche.net/contents/pc/usb.php3