Como especificar nome de usuário e senha no comando ftp?

9

Eu quero automatizar uma chamada para ftp em um script de shell. Se eu digitar

$ftp somehost.domain.com

Eu sou solicitado por um nome de usuário e senha. Eu quero dar esse nome de usuário e senha como parte da chamada para ftp. A página de manual do ftp diz que posso emitir um comando de usuário no prompt do ftp - mas eu quero logar no ftp all numa única tentativa. Isso é possível? Eu não vejo nada nas bandeiras para ftp. Eu vejo que a opção -s me dá a opção de especificar alguns comandos ftp assim que eu tiver o prompt ftp - mas eu preciso dar o nome do usuário para chegar ao prompt ...

    
por bernie2436 11.02.2014 / 20:40

3 respostas

9

Use um arquivo .netrc em seu diretório pessoal.

O conteúdo é:

# machine <hostname> login <username> password <password>
machine ftp.example.com login myuser password $ecret

Se isso for algo que você está fazendo programaticamente, escreva o .netrc antes de se conectar, exclua quando terminar.

    
por 11.02.2014 / 20:45
1

Você também pode escrever um script de shell usando um aqui que seria algo assim :

#!/bin/sh
HOST='someftpserver.com'
USER='username'
PASSWD='password'
FILES='*.txt'
#
ftp -nv $HOST>$FTPLOG <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd somedirectory
binary
mget $FILES
quit
END_SCRIPT
    
por 18.08.2014 / 09:22
0

Você também pode considerar wput ou wget como alternativas, dependendo de suas necessidades.

Eu não usei wget recentemente, mas usei wput porque eu não queria criar ou modificar arquivos como sugerido em algumas respostas anteriores.

Para wput , a sintaxe é:

wput <filename> ftp://<username>:<password>@<address>
    
por 31.08.2018 / 15:04

Tags