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

17

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

Ручные состояния

-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" просто кричит на меня, или на самом деле любую комбинацию цитат я пробовал ( ||или &&независимо)

Recct
источник
просто добавьте;
выйдите

Ответы:

28
$ 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
есть ли способ заставить это работать, если в пароле есть такие символы, как' " : ;
Пит
Меня сбили с толку, потому что после первой запятой у меня был пробел, как только я понял, что это сработало
Патрик
10

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

Mohnish
источник
1

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.

Евгений Майер
источник