lftp: लॉगिन, फ़ाइल को दूरस्थ dir में डालें और एक ही कमांड में बाहर निकलें: उचित उद्धरण मदद


17

मैं 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" बस मुझ पर चिल्लाता है, या वास्तव में उद्धरण के किसी भी संयोजन मैंने कोशिश की ( ||या &&चाहे)


बस जोड़ें; छोड़ें या अलविदा :)
meso_2600

जवाबों:


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
इस काम को बनाने का कोई रास्ता नहीं है अगर पासवर्ड में अक्षर हैं जैसे' " : ;
पीट

मैं, क्योंकि मुझे लगता है कि पहले अल्पविराम के बाद एक जगह थी ऊपर फिसल गया, एक बार मैं लगा कि बाहर यह बहुत अच्छा काम किया है
पैट्रिक


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

क्लि में पासवर्ड डालना बिलकुल नो-गो है क्योंकि अपलोड के दौरान ps -aux का उपयोग करते समय वे भी पठनीय होते हैं .. बैश इतिहास के साथ भी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.