Eu gostaria de usar lftp
para colocar um arquivo em um diretório remoto e sair em um comando. Seguindo a resposta principal a esta pergunta sobre essa mesma tarefa, tentei o seguinte:
lftp -c "open -u user,pass ftpsite.com; put -O remote/dir/ /local/file.txt"
Recebi o seguinte erro:
put: Falha no login: 530 Box: Credenciais de usuário inválidas.
tentei a segunda resposta
lftp -e "put -O remote/dir/ /local/file.txt; bye" -u user,pass ftpsite.com
e recebeu o mesmo erro.
Fazer tudo passo a passo funcionou perfeitamente, ou seja,
lftp ftpsite.com -u user,pass
put -O remote/dir/ /local/file.txt
bye
mas eu tenho que fazer isso para muitos arquivos. Eu gostaria de poder fazer isso em um comando para executá-lo como parte de um script. Alguma dica sobre como corrigir esse erro ou por onde procurar/começar?
Eu uso
lftp
na maioria dos meus scripts para automatizar uploads/downloads e usar a sintaxe HEREDOC sempre funcionou:Certifique-se de proteger sua senha entre
'
, pois ela pode conter caracteres reservados que são interpretados pelo shell (e não são passados corretamente paralftp
):lftp -u user,'password'
.