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


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

मैं इसका प्रयास नहीं कर रहा हूं, इसका कोई फायदा नहीं हुआ:

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

102
2017-08-15 01:40


मूल


मैं मैन पेज कैसे करूं? - Ignacio Vazquez-Abrams
मैं इसके बारे में ज्यादा नहीं जानता ftp उबंटू में उपकरण, लेकिन ऐसा लगता है कि यह चकित है ftp://। शायद इसे बाहर निकालने का प्रयास करें? - Nate Koppenhaver
@ IgnacioVazquez-अब्राम man ftp कमांड लाइन पर - c.gutierrez
समान: एफ़टीपी पर फ़ाइलों को सिंक्रनाइज़ करना, लेकिन कई फाइलों के लिए। - kenorb
मुझे '-u अज्ञात विकल्प' मिल रहा है। - Robert Reiz


जवाब:


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

$ 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

162
2017-08-15 04:39



वाह, मुझे नहीं पता था curl समर्थित एफटीपी! यह बहुत आसान है। - Sébastien
के लिए +1 curl उपाय। दूसरे के साथ भी परेशान क्यों? - Asaph
@Asaph क्योंकि कर्ल स्थापित नहीं है जहां मुझे ऐसा करने की ज़रूरत है, इसलिए दूसरा समाधान आसान हो गया। धन्यवाद। - bobef
कर्ल के लिए +1। साफ, साफ और सीधे बिंदु पर! डेबियन / उबंटू में "apt-get कर्ल इंस्टॉल करें", यदि आपके पास यह नहीं है। - GTodorov
curl समाधान सबसे अच्छा और सबसे आसान है


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

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

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

13
2018-01-27 15:52



क्या आप उपकरण या उसके दस्तावेज के लिए एक लिंक प्रदान कर सकते हैं? - bwDraco
हाय ड्रैगन लॉर्ड, यदि आप उबंटू में हैं और आपने ftp-upload इंस्टॉल किया है (मैंने जो आदेश दिया है उसका उपयोग करके) आप बस कर सकते हैं man ftp-upload। उम्मीद है की वो मदद करदे। - Floris


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

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

ftp -u एफ़टीपी: // उपयोगकर्ता: secret@ftp.example.com/my-local-file.txt my-local-file.txt


5
2017-12-02 19:59



FTP: अमान्य विकल्प - 'यू' - Babken Vardanyan
दरअसल :( ftp: u: अज्ञात विकल्प - webDEVILopers
ftp: u: अज्ञात विकल्प - Morten


एनसीएफटीपी स्थापित करें और इसका उपयोग करें ncftpput उपकरण जो इसके साथ आता है, इस वाक्यविन्यास की तरह कुछ बहुत कुछ है:

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

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


4
2017-08-15 04:37





आप भी कोशिश कर सकते हैं lftp

यहाँ एक उदाहरण है:

lftp -e 'cd folder1/folder2; put /home/path/yourfile.tar; bye' -u user,password ftp.theserver.com

के लिए यहां देखें अधिक जानकारी


2
2018-01-10 09:06





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

#!/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

2
2018-04-29 07:48





मैं BusyBox का उपयोग करें 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 अच्छी तरह से काम करो।


1
2018-02-16 17:47





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

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


0
2018-02-16 19:37





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

[Ftp_example_1.sh]

$ ftp_example_sh.sh dump_file

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 dump_file

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

0
2017-07-31 02:59





FtpPut(){
    echo `echo -e "open host\nuser user pass\nbinary\nput $1\nquit"|ftp -nv`
}
FtpPut asd.txt
FtpPut asd.mp4
FtpPut asd.php
...

-1
2017-08-25 18:06