Eu quero automatizar uma chamada para ftp em um script de shell. Se eu digitar
$ftp somehost.domain.com
É solicitado um nome de usuário e senha. Quero fornecer esse nome de usuário e senha como parte da chamada para o ftp. A página de manual do ftp diz que eu posso emitir um comando de usuário no prompt do ftp - mas quero fazer login no ftp de uma só vez. Isso é possível? Não vejo nada nas bandeiras para ftp. Vejo que a opção -s me dá a opção de especificar alguns comandos ftp quando tiver o prompt do ftp - mas preciso fornecer o nome do usuário para chegar ao prompt ...
expect
(uma extensão tcl / tk das sortes) é um programa ideal para esse tipo de coisa - ie. aguarde algum aviso; dê uma resposta ... aguarde uma resposta; dê uma nova resposta ...expect
aguarde "ogin:" e envie seu nome de usuário, aguarde "assword:" e envie sua senha.Respostas:
Use um
.netrc
arquivo no seu diretório pessoal.O conteúdo é:
Se isso é algo que você está fazendo programaticamente, escreva o
.netrc
antes de conectar e exclua-o quando terminar.fonte
ftp
ou também é lido por outros programas?netrc(5)
página de manual diz que é "forftp(1)
", mas não tenho certeza de queftp
é a única coisa que o usará.locate '.netrc'
Você também pode escrever um script de shell ac usando um documento aqui que seria algo como isto:
fonte
Você também pode considerar
wput
ouwget
como alternativas, dependendo de suas necessidades.Não usei
wget
recentemente, mas useiwput
porque não queria criar ou modificar arquivos, conforme sugerido em algumas respostas anteriores.Para
wput
, a sintaxe é:fonte