it-swarm.com.de

lftp: Login, Datei in Remote-Verzeichnis ablegen und mit einem einzigen Befehl beenden: Richtige Anführungshilfe

Ich möchte lftp -c Verwenden, um eine ganze Sitzung auf einmal durchzuführen (da ich dies später über ein Skript starten werde), und ich habe es mit -e Gelungen, aber das ofc lässt mich interaktiv Sitzung, die ich nicht will.

Manuelle Zustände

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

Aber ich verstehe nicht, wie ich meine Befehle/Interaktionen richtig zitieren und aneinanderreihen soll.

lftp -e "put -O remote/dir/ /local/file.txt" -u user,pass ftpsite.com Funktioniert hervorragend. Aber ich möchte nach dem Ausführen des Befehls beenden;

lftp -c "open -u user,pass ftpsite.com" || put -O "remote/dir/ /local/file.txt" Schreit mich nur an oder tatsächlich eine beliebige Kombination von Zitaten, die ich versucht habe (|| Oder && Unabhängig davon)

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

sollte es tun.

Wenn dies nicht funktioniert, fügen Sie Ihrem /etc/lftp.conf die folgenden Zeilen:

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

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

10
Mohnish

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

und setzen Sie Ihre Anmeldeinformationen unter ~/.netrc wie

machine ftp.yourhost.com login your_username password your_password

Das Einfügen von Passwörtern in die CLI ist absolut unmöglich, da diese sogar lesbar sind, wenn ps -aux während des Uploads verwendet wird. Neben dem Bash-Verlauf auch.

1
Eugen Mayer