कमांड लाइन से FTP द्वारा एक फाइल कैसे अपलोड करें?


114

मुझे उबंटू से एफ़टीपी सर्वर पर एक एकल फ़ाइल अपलोड करने की आवश्यकता है। यह ऑपरेशन एक स्क्रिप्ट (गैर-इंटरैक्टिव मोड में) में किया जाना चाहिए। के लिए सही वाक्यविन्यास क्या है ftp?

मैं यह कोशिश कर रहा हूँ, कोई फायदा नहीं हुआ:

$ ftp -u ftp://user:secret@ftp.example.com my-local-file.txt
ftp: Invalid URL `ftp://'

5
मैं पेज कैसे बनाऊं?
इग्नासियो वाज़केज़-अब्राम्स

मैं ftpउबंटू में उपकरण के बारे में ज्यादा नहीं जानता , लेकिन ऐसा लग रहा है कि यह इस पर घुट रहा है ftp://। शायद बाहर ले जाने की कोशिश करें?
नैट कोपेनहेवर

@ इग्नासिओवेज़्केज़-एब्राम man ftpकमांड लाइन पर
c.gutierrez

इसी तरह: एफ़टीपी पर फ़ाइलों को सिंक्रनाइज़ करना , लेकिन कई फ़ाइलों के लिए।
kenorb

मुझे '-यू अज्ञात विकल्प' मिल रहा है।
रॉबर्ट रीज़

जवाबों:


182

यहाँ एक दृष्टिकोण है:

$ ftp -n <<EOF
open ftp.example.com
user user secret
put my-local-file.txt
EOF

वैकल्पिक रूप से, उस उपयोगकर्ता के होम डायर में ~ / .netrc फ़ाइल बनाएं, जो ftp कमांड चलाएगा, उसे उपयुक्त परमिट ( chmod 0600 ~/.netrc) देगा, और निम्नलिखित जोड़ें:

# ~/.netrc
machine ftp.example.com
login user
password secret

फिर लॉगिन जानकारी को छोड़ दें:

$ echo put my-local-file.txt | ftp ftp.example.com

इसके अलावा, यहाँ आप कर्ल का उपयोग करके उसी तरह कैसे कर सकते हैं:

$ curl -T my-local-file.txt ftp://ftp.example.com --user user:secret

12
वाह, मैं curlसमर्थित FTP नहीं जानता था ! यह सुपर आसान है।
सेबेस्टियन

61
curlसमाधान के लिए +1 । दूसरे के साथ भी परेशान क्यों?
असफ

3
@Asaph क्योंकि कर्ल स्थापित नहीं है जहां मुझे ऐसा करने की आवश्यकता है, इसलिए अन्य समाधान काम में आया। धन्यवाद।
बोबफे

1
कर्ल के लिए +1। साफ, साफ और सीधे बिंदु पर! यदि आपके पास नहीं है तो डेबियन / उबंटु "एप्ट-गेट इंस्टॉल कर्ल" में।
GTodorov

2
curlसमाधान सबसे अच्छा और सबसे आसान है

17

मैं सिफारिश कर सकता हूं ftp-upload। यह एक छोटा सा उपकरण है जिसे आप ubuntu के माध्यम से स्थापित कर सकते हैं sudo apt-get install ftp-upload

उपयोग उदाहरण:

ftp-upload -h {HOST} -u {USERNAME} --password {PASSWORD} -d {SERVER_DIRECTORY} {FILE_TO_UPLOAD}

क्या आप उपकरण या उसके प्रलेखन के लिए एक लिंक प्रदान कर सकते हैं?
bwDraco

1
हाय ड्रैगनलॉर्ड, यदि आप उबंटू में हैं और आपने ftp-upload (कमांड का उपयोग जो मैंने पहले दिया था) का उपयोग करके स्थापित किया है man ftp-upload। उम्मीद है की वो मदद करदे।
फ्लोरिस

5

आपको अपने स्टेटमेंट में दिए गए URL को ठीक करना होगा। आपको त्रुटि प्राप्त हुई क्योंकि URL अधूरा था - यह उस ऑब्जेक्ट का नाम याद कर रहा था जिसे आप अपलोड कर रहे हैं। एक बार जब आप 'example.com' के बाद फ़ाइल नाम जोड़ते हैं, जैसा कि मैंने नीचे किया है, तो आप देखेंगे कि एकल कमांड वास्तव में आपके अनुसार काम करती है।

इसे इस्तेमाल करे:

ftp -u ftp://user:secret@ftp.example.com/my-local-file.txt my-local-file.txt


9
ftp: अमान्य विकल्प - 'u'
बबकेन वर्दयान

2
वास्तव में :( ftp: u: अज्ञात विकल्प
webDEVILopers

ftp: u: अज्ञात विकल्प
मोर्टेन

4

Ncftp स्थापित करें और इसके साथ आने वाले ncftpput टूल का उपयोग करें , इस वाक्य रचना की तरह बहुत कुछ:

ncftpput -u ftpuser -p ftppass ftphostname /path/where/to/upload localfile.name
if [ $? -ne 0 ]; then echo "Upload failed"; fi

आप यह भी देख सकते हैं कि अपलोड की स्थिति अच्छी है या खराब। सामान्य ftp क्लाइंट का उपयोग उम्मीद के साथ भी किया जा सकता है।



2

कमांड लाइन के माध्यम से एक दूरस्थ स्थान पर एक फ़ाइल अपलोड करें

#!/bin/bash
#$1 is the file name
#usage:this_script <filename>
HOST='yourhost'
USER="youruser"
PASSWD="pass"
FILE="abc.php"
REMOTEPATH='/html'

ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd $REMOTEPATH
put $FILE 
quit
END_SCRIPT
exit 0

1

मैं ftpputऐसा करने के लिए बिजीबॉक्स का उपयोग करता हूं :

# /bin/busybox ftpput

BusyBox v1.20.2 (Debian 1:1.20.0-7) multi-call binary.

Usage: ftpput [OPTIONS] HOST [REMOTE_FILE] LOCAL_FILE

Upload a file to a FTP server

    -v,--verbose            Verbose
    -u,--username USER      Username
    -p,--password PASS      Password
    -P,--port NUM           Port

नोट: busybox ftpgetअच्छी तरह से काम करें।


0

आप sftp या ftp कमांड का उपयोग भी कर सकते हैं

sftp {user}@{IP}
Password:
put {path To File On Local Computer}


0

मैंने नीचे की तरह मार्टी उत्तर को बेहतर बनाया (बाइनरी शामिल करें):

[Ftp_example_1.sh]

$ ftp_example_sh.sh डंप_फाइल

ftp -n <<EOF
open 192.168.0.10
user anonymous aaa
binary
put $1
EOF

[Ftp_example_2.sh]

$ ftp_example_2.sh 192.168.0.10 डंप_फाइल

ftp -n <<EOF
open $1
user anonymous aaa
binary
put $2
EOF

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