Ftp कमांड में यूजरनेम और पासवर्ड कैसे निर्दिष्ट करें?


9

मैं एक शेल स्क्रिप्ट में एफ़टीपी के लिए एक कॉल को स्वचालित करना चाहता हूं। अगर मैं टाइप करता हूँ

$ftp somehost.domain.com

मुझे उपयोगकर्ता नाम और पासवर्ड के लिए संकेत दिया गया है। मैं उस उपयोगकर्ता नाम और पासवर्ड को ftp करने के लिए कॉल के भाग के रूप में देना चाहता हूं। आदमी पेज एफ़टीपी के लिए मैं एफ़टीपी प्रॉम्प्ट पर एक उपयोगकर्ता आदेश जारी कर सकते हैं कहते हैं - लेकिन मैं एक ही बार में सभी FTP के लिए लॉग इन करना चाहते हैं। क्या यह संभव है? मैं झंडे के लिए कुछ भी नहीं देख रहा हूँ। मुझे लगता है कि -s विकल्प मुझे कुछ FTP कमांड निर्दिष्ट करने का विकल्प देता है, जब मेरे पास ftp प्रॉम्प्ट होता है - लेकिन मुझे प्रॉम्प्ट पर पहुंचने के लिए उपयोगकर्ता का नाम देना होगा ...


expect(एक प्रकार का tcl / tk विस्तार) एक ऐसा कार्यक्रम है जो इस प्रकार की चीजों के लिए आदर्श है - अर्थात। कुछ संकेत के लिए प्रतीक्षा करें; एक उत्तर दें ... उत्तर की प्रतीक्षा करें; एक नई प्रतिक्रिया दें ... expect"ogin:" की प्रतीक्षा करें और आपको उपयोगकर्ता नाम भेजें, फिर वह "assword:" की प्रतीक्षा करें और अपना पासवर्ड भेजें।
बार्ड कोपरपुड

जवाबों:


10

.netrcअपने घर निर्देशिका में एक फ़ाइल का उपयोग करें ।

सामग्री है:

# machine <hostname> login <username> password <password>
machine ftp.example.com login myuser password $ecret

यदि यह ऐसा कुछ है जो आप प्रोग्रामेटिक रूप से कर रहे हैं, तो .netrcकनेक्ट करने से पहले लिखें , जब आप काम कर रहे हों तो इसे हटा दें।


क्या यह फ़ाइल विशिष्ट है ftpया इसे अन्य कार्यक्रमों द्वारा भी पढ़ा जाता है?
terdon

netrc(5)आदमी पेज का कहना है कि यह "के लिए ftp(1)" लेकिन मुझे यकीन है कि नहीं कर रहा हूँ ftpकेवल एक चीज है कि यह प्रयोग करेंगे।
bahamat

यदि आप अपनी ".netrc" फ़ाइल को खोजना चाहते हैं, तो बस इस कमांड का उपयोग करें:locate '.netrc'
goamn

1

आप यहाँ एक doc का उपयोग करके ac शेल स्क्रिप्ट भी लिख सकते हैं जो कुछ इस तरह होगी:

#!/bin/sh
HOST='someftpserver.com'
USER='username'
PASSWD='password'
FILES='*.txt'
#
ftp -nv $HOST>$FTPLOG <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd somedirectory
binary
mget $FILES
quit
END_SCRIPT

0

आप अपनी आवश्यकताओं के आधार पर विकल्प के रूप में विचार wputकर सकते हैं या wgetकर सकते हैं।

मैंने wgetहाल ही में उपयोग नहीं किया है, लेकिन मैंने उपयोग किया है wputक्योंकि मैं फ़ाइलों को बनाना या संशोधित नहीं करना चाहता था जैसा कि पहले के कुछ उत्तरों में सुझाया गया था।

के लिए wput, वाक्यविन्यास है:

wput <filename> ftp://<username>:<password>@<address>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.