एफ़टीपी या एसएसएच के साथ कमांड लाइन से फ़ाइल कैसे अपलोड करें?


30

मैंने पहले कभी ऐसा नहीं किया है और मैं अपने लिए ऐसा करने के लिए बैश शेल स्क्रिप्ट बना रहा हूं। मैं कुछ चीजें करने के लिए ssh के माध्यम से भी जुड़ रहा हूं (जो मुझे पहले से ही पता है कि कैसे करना है)। तो शायद ssh के माध्यम से फ़ाइलों को अपलोड करने का एक तरीका है इसलिए मैं यह सब एक कनेक्शन में कर सकता हूं?

मैं यह कैसे कर सकता हूँ?

#!/bin/sh

cd ./files-to-upload
#upload the files

इस सवाल का जवाब नहीं है, लेकिन शायद यह कुछ लोगों की मदद कर सकता है: curl.io आपको सार्वजनिक HTTP होस्टिंग (मुझे लगता है कि कुछ घंटों के लिए वैध) के माध्यम से bash के माध्यम से एक फ़ाइल अपलोड करने की अनुमति देता है
विन्सेंट फेनेट

जवाबों:


56

आप scpकिसी दूरस्थ मशीन पर कॉपी करने के लिए उपयोग कर सकते हैं ।

scp <file to upload> <username>@<hostname>:<destination path>

क्या पासवर्ड इसके साथ भी पारित किया जा सकता है? इसके अलावा, यह एक ssh सत्र इनिशियलाइज़ करता है? क्या मैं अन्य कमांड भी चला सकता हूं?
एंड्रयू

2
नहीं, आप पासवर्ड नहीं दे सकते। लेकिन आप ssh कुंजी प्रमाणीकरण सेट कर सकते हैं। इसका मतलब है कि आप एक पासवर्ड के माध्यम से प्रमाणित नहीं करते हैं लेकिन एक कुंजी के माध्यम से जो एक फ़ाइल में संग्रहीत होती है और स्वचालित रूप से कनेक्शन पर प्रेषित होती है। और फिर से, आप इसके साथ अन्य कमांड निष्पादित नहीं कर सकते।
फेलिक्स

मेरा मतलब है कि आप ssh के साथ जुड़ सकते हैं, फिर एससीपी चला सकते हैं? या वे अलग-अलग कमांड हैं?
एंड्रयू

2
sshऔर scpअलग-अलग कमांड हैं। एक परिचय के लिए देखें ssh.com/support/documentation/online/ssh/adminguide/32/…
tangens

1
@ फेलिक्स को इंगित करना चाहिए कि यदि आपके पास ssh कुंजी प्रमाणीकरण सेट नहीं है, तो आपको पासवर्ड के लिए संकेत दिया जाएगा । इसका मतलब है कि उस सेटअप का इस कमांड का उपयोग करने के लिए एक महत्वपूर्ण आवश्यकता नहीं है
aexl

6

आप शायद एससीपी या इसी तरह की तलाश कर रहे हैं।

#!/bin/bash

cd ./files-to-upload
scp * user@host:/path/to/upload/files/to

बेशक यह आपकी पसंद के हिसाब से दिया जाना चाहिए। उपयोगकर्ता को अपनी वास्तविक जानकारी के साथ होस्ट करें। आपको अपलोड करने के लिए पासवर्ड के लिए कहा जाएगा।


4

यदि आपको वास्तव में ssh (scp के बजाय) का उपयोग करना चाहिए तो आप कर सकते हैं:

for filename in *; do
  cat $filename | ssh user@host "cd /path/to/upload/files/to; cat - > $filename"
done

लेकिन नियमित एससीपी (जैसे स्पर्श सुझाव) सबसे अच्छा है।


Im एक FTp कनेक्शन का उपयोग करते हुए, क्या आप कृपया बता सकते हैं कि फाइल को स्थानीय से रिमोट में कैसे ट्रांसफर या कॉपी किया जाए, फाइलजिला या wincp का उपयोग करके ... मुझे स्थानीय से रिमोट पर जिप निकालने या कॉपी करने की आवश्यकता है
सुशीवम

1

scp बेहतर उत्तर है क्योंकि यह SSH पर एन्क्रिप्टेड होगा।

हालाँकि, यदि आप इसे मानक ftp पर करना चाहते हैं, तो ncftpput देखें। यह विशिष्ट रूप से एक फ़ाइल अपलोड करने के लिए डिज़ाइन किया गया है:

NAME ncftpput - स्क्रिप्ट के लिए इंटरनेट फ़ाइल स्थानांतरण कार्यक्रम

SYNOPSIS ncftpput [विकल्प] दूरस्थ-होस्ट दूरस्थ-निर्देशिका स्थानीय-फ़ाइलें ...



0

जब आप scp(सुरक्षित प्रतिलिपि) कमांड का उपयोग करते हैं तो यह क्लाइंट से जुड़ जाता है और यदि आपके पास होस्ट डिवाइस के लिए पहले से ही कोई फिंगरप्रिंट नहीं बचा है, तो यह आपसे होस्ट पासवर्ड के लिए पूछेगा अन्यथा यह उस होस्ट से ऑटो कनेक्ट होना चाहिए जो मैं मानता हूं।


0

Ec2 उदाहरण के लिए, आपको .pemफ़ाइल भी पास करनी होगी ,

$scp -i ~/Desktop/amazon.pem ~/Desktop/file.zip  ubuntu@ec2-54-166-128-20.compute-1.amazonaws.com:~/data/
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.