Je veux automatiser un appel à ftp dans un script shell. Si je tape
$ftp somehost.domain.com
On me demande un nom d'utilisateur et un mot de passe. Je veux donner ce nom d'utilisateur et ce mot de passe dans le cadre de l'appel à ftp. La page de manuel de ftp indique que je peux émettre une commande utilisateur à l'invite ftp - mais je veux me connecter à ftp en une seule fois. Est-ce possible? Je ne vois rien dans les drapeaux pour ftp. Je vois que l'option -s me donne la possibilité de spécifier certaines commandes ftp une fois que j'ai l'invite ftp - mais je dois donner le nom d'utilisateur pour accéder à l'invite ...
expect
(une extension tcl / tk de toutes sortes) est un programme qui est idéal pour ce genre de choses - ie. attendez une invite; donner une réponse ... attendre une réponse; donnez une nouvelle réponse ...expect
attendez "ogin:" et envoyez-vous votre nom d'utilisateur, puis attendez "assword:" et envoyez votre mot de passe.Réponses:
Utilisez un
.netrc
fichier dans votre répertoire personnel.Le contenu est:
Si c'est quelque chose que vous faites par programme, écrivez le
.netrc
avant de vous connecter, supprimez-le lorsque vous avez terminé.la source
ftp
ou est-il lu par d'autres programmes également?netrc(5)
page de manuel indique que c'est "pourftp(1)
" mais je ne suis pas sûr que ceftp
soit la seule chose qui l'utilisera.locate '.netrc'
Vous pouvez également écrire un script shell ac en utilisant un doc ici qui ressemblerait à ceci:
la source
Vous pouvez également envisager
wput
ouwget
comme alternatives, selon vos besoins.Je ne l'ai pas utilisé
wget
récemment mais je l'ai utiliséwput
parce que je ne voulais pas créer ou modifier des fichiers comme suggéré dans certaines réponses précédentes.Pour
wput
, la syntaxe est:la source