lftp: войти, поместить файл в удаленный каталог и выйти одной командой: помощь по правильному кавычкам

lftp: войти, поместить файл в удаленный каталог и выйти одной командой: помощь по правильному кавычкам

Я хочу использовать его lftp -cдля выполнения всей сессии за один раз (так как позже я запущу это из скрипта), и мне это удалось, -eно, конечно, это оставляет меня с интерактивной сессией, которая мне не нужна.

Состояние ручного управления

-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.

Но я не понимаю, как мне правильно цитировать и связывать свои команды/взаимодействия.

lftp -e "put -O remote/dir/ /local/file.txt" -u user,pass ftpsite.com работает отлично. Но я хочу выйти после выполнения команды;

lftp -c "open -u user,pass ftpsite.com" || put -O "remote/dir/ /local/file.txt" просто кричит на меня, или на самом деле любая комбинация цитат, которые я пробовал ( ||или &&независимо)

решение1

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

следует это сделать.

Если это не сработает, попробуйте добавить /etc/lftp.confследующие строки:

set ftp:ssl-protect-data true
set ftp:ssl-force true
set ftp:ssl-auth TLS
set ssl:verify-certificate no

решение2

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

решение3

lftp -e "put -O remote/dir/ /local/file.txt; bye" ftp.yourhost.com

и поместите ваши учетные данные в ~/.netrc, например

machine ftp.yourhost.com login your_username password your_password

Ввод паролей в cli абсолютно бесполезен, так как их можно прочитать даже при использовании ps -aux во время загрузки, а также в истории bash.

Связанный контент