use um cliente ftp scriptável como o lftp.
você usa assim:
lftp -u login,pass host.com -e "get file.txt;exit "
ou ainda mais simples - use wget:
wget -O file ftp://login:[email protected]/file.txt
Estou tentando escrever um script BASH para testar se um site FTP que possuo está executando. Portanto, quero que o script bash se conecte ao site FTP, efetue login com uma conta fictícia e redirecione a saída para um arquivo que, em seguida, posso confirmar que o login foi bem-sucedido.
(Eu sei que colocar usuário / senha em um arquivo não é recomendado, mas essa conta fictícia é chrooted para um diretório vazio e não pode escapar para o shell, e em qualquer caso eu sou o único usuário que pode fazer o login para um prompt de shell.)
Estou usando o shell BASH no Ubuntu.
Eu criei um arquivo chamado "ftp-dummy" que se parece com isso
username
password
E então fiz isso a partir do prompt:
adam$ ftp my.ftpsite.com < ftp-dummy
Isso não funciona - não vejo a mensagem normal de boas-vindas e a saída é:
Password:Name (my.ftpsite.com:adam) :
Eu tentei remover o espaço entre os < e o nome do arquivo - mesmo resultado.
Se eu redirecionar a saída para um testfile, o arquivo de teste mostrará:
Name (my.ftpsite.com:adam): ?Invalid command
E ainda recebo uma solicitação de senha no STDOUT
Eu também tentei usar o echo e obter o mesmo resultado:
echo -e "username \npassword \n" | ftp my.ftpsite.com
Não vejo por que não estou vendo a mensagem normal de boas-vindas ou por que a entrada não está sendo lida no arquivo. Qualquer ajuda seria muito apreciada.
Obrigado,
Adam
use um cliente ftp scriptável como o lftp.
você usa assim:
lftp -u login,pass host.com -e "get file.txt;exit "
ou ainda mais simples - use wget:
wget -O file ftp://login:[email protected]/file.txt
Encontrei problemas ao redirecionar STDIN com clientes ftp do UNIX antes. Embora eu sempre tente trabalhar com eles, achei que esperava ser mais adequado em muitas situações.
Você também pode dar uma olhada no check_ftp do nagios-plugins, já que você poderia usá-lo para seus propósitos . Muitas vezes, há pouca necessidade de reinventar a roda.
Para responder especificamente à sua pergunta, o arquivo netrc do FTP fornecerá os detalhes de autenticação em seu nome.
Há um sinalizador em ftp
que você pode usar para interromper a solicitação automática de senha quando você envia o comando do usuário.
ftp -n
Então você pode canalizar seus comandos (incluindo usuário e pass) para ftp.
Tags bash ftp redirection