Quero usar lftp -c
para fazer uma sessão inteira de uma só vez (já que lançarei isso a partir de um script mais tarde) e consegui, -e
mas isso me deixa com a sessão interativa que não quero.
Estados manuais
-c commands
Execute the given commands and exit. Commands can be separated with a semicolon, `&&'
or `||'. Remember to quote the commands argument properly in the shell. This option
must be used alone without other arguments.
Mas não entendo como devo citar e encadear meus comandos/interações corretamente.
lftp -e "put -O remote/dir/ /local/file.txt" -u user,pass ftpsite.com
funciona excelente. Mas quero sair depois de executar o comando;
lftp -c "open -u user,pass ftpsite.com" || put -O "remote/dir/ /local/file.txt"
apenas grita comigo, ou na verdade qualquer combinação de citações que tentei ( ||
ou &&
independentemente)
Responder1
$ lftp -c "open -u user,pass ftpsite.com; put -O remote/dir/ /local/file.txt"
deveria fazer isso.
Se isso não funcionar, tente adicionar /etc/lftp.conf
as seguintes linhas:
set ftp:ssl-protect-data true
set ftp:ssl-force true
set ftp:ssl-auth TLS
set ssl:verify-certificate no
Responder2
lftp -e "put -O remote/dir/ /local/file.txt; bye" -u user,pass ftpsite.com
Responder3
lftp -e "put -O remote/dir/ /local/file.txt; bye" ftp.yourhost.com
e coloque suas credenciais em ~/.netrc como
machine ftp.yourhost.com login your_username password your_password
Colocar senhas no cli é absolutamente impossível, pois elas são legíveis ao usar ps -aux durante o upload.. além do histórico do bash também.