lftp: zaloguj się, umieść plik w zdalnym katalogu i wyjdź w jednym poleceniu: odpowiednia pomoc w cytowaniu

17

Chcę lftp -czrobić całą sesję za jednym razem (ponieważ będę to później uruchamiać ze skryptu) i udało mi się, -eale ta ofc pozostawia mnie z interaktywną sesją, której nie chcę.

Stany ręczne

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

Ale nie rozumiem, jak powinienem poprawnie cytować i łączyć moje polecenia / interakcje.

lftp -e "put -O remote/dir/ /local/file.txt" -u user,pass ftpsite.com działa doskonale. Ale chcę wyjść po wykonaniu polecenia;

lftp -c "open -u user,pass ftpsite.com" || put -O "remote/dir/ /local/file.txt" po prostu krzyczy na mnie, a właściwie na dowolną kombinację cytatów, które wypróbowałem ( ||lub &&niezależnie)

Rec
źródło
po prostu dodaj; wyjdź lub; cześć :)
meso_2600,

Odpowiedzi:

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

powinien to zrobić.

Jeśli to nie zadziała, spróbuj dodać /etc/lftp.confnastępujące wiersze:

set ftp:ssl-protect-data true
set ftp:ssl-force true
set ftp:ssl-auth TLS
set ssl:verify-certificate no
Glenn Jackman
źródło
2
czy to w ogóle sprawi, że to zadziała, jeśli hasło zawiera takie znaki, jak' " : ;
Pete,
Potknąłem się, ponieważ po pierwszym przecinku miałem wolne miejsce, kiedy doszedłem do wniosku, że to działa świetnie
Patrick
10

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

Mohnish
źródło
1

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

i umieść swoje poświadczenia w ~ / .netrc jak

machine ftp.yourhost.com login your_username password your_password

Wpisywanie haseł w cli jest absolutnie zabronione, ponieważ są one nawet czytelne, gdy używasz ps -aux podczas wysyłania .. oprócz historii bash.

Eugen Mayer
źródło