lftp: login, coloca o arquivo no diretório remoto e sai em um único comando: ajuda de cotação apropriada

14

Eu quero usar lftp -c para fazer uma sessão inteira de uma só vez (como eu vou iniciar isso a partir de um script mais tarde) e eu consegui com -e , mas isso me deixa com a sessão interativa que eu não quero.

Estados do manual

-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 vincular meus comandos / interações corretamente.

lftp -e "put -O remote/dir/ /local/file.txt" -u user,pass ftpsite.com funciona excelente. Mas eu 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 eu tentei ( || ou && independentemente)

    
por Recct 04.10.2013 / 17:29

3 respostas

24
$ lftp -c "open -u user,pass ftpsite.com; put -O remote/dir/ /local/file.txt" 

deve fazer isso.

Se isso não funcionar, adicione ao seu /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
    
por 04.10.2013 / 17:52
8

lftp -e "put -O remote/dir/ /local/file.txt; bye" -u user,pass ftpsite.com

    
por 24.05.2014 / 10:01
1

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 proibido, já que elas podem ser lidas ao usar o ps -aux durante o upload ... além do histórico do bash também.

    
por 30.08.2017 / 09:50

Tags