यूनिक्स में mput का उपयोग करके किसी अन्य सर्वर के लिए कई फ़ोल्डरों को एफ़टीपी कैसे करें?


18

मैं एक सर्वर पर (पुट्टी का उपयोग करके) लॉग इन हूं। वहां से मैं FTP का उपयोग करके दूसरे सर्वर से कनेक्ट कर रहा हूं। मैं पहले सर्वर से दूसरे सर्वर से mput का उपयोग करके कई फ़ोल्डर्स कॉपी करना चाहता हूं।

पसंद:

ftp> mput folder1 folder2 folder3

लेकिन मुझे "folder1: एक सादा फ़ाइल नहीं" मिलता है ... और इसी तरह। इनमें से प्रत्येक फ़ोल्डर में सबफ़ोल्डर, फाइलें (कुछ बाइनरी, कुछ नहीं) हैं।

मैं सामान को ज़िप किए बिना और फिर ट्रांसफर के बिना मैं क्या हासिल कर सकता हूं?

जवाबों:


19

कमांड लाइन एफ़टीपी बहुत आदिम है।

आप दूरस्थ साइट की ओर फ़ाइलों / फ़ोल्डरों को दोबारा नहीं भेज सकते।

यदि आप किसी दूरस्थ संरचना को स्थानीय की तरह ही बनाना चाहते हैं, तो आपको mkdirप्रत्येक पथ को मैन्युअल रूप से उपयोग mput *करने की आवश्यकता है और उस निर्देशिका में सब कुछ दूरस्थ पक्ष को भेजने के लिए उपयोग करना होगा।

इसे आसान बनाने के लिए दो विकल्प:

  1. आदिम एफ़टीपी कमांड का उपयोग करना बंद करें (ncftp एक अच्छा विकल्प है)

  2. फ़ोल्डरों को टारगेट करने के लिए टार का उपयोग करें, फाइल भेजें और दूर की तरफ निकालें।


1
के लिए +1 tar-> put-> अनटार
डेव

1
-1 क्योंकि सवाल पूछता है कि "मैं सामान को ज़िप किए बिना जो मैं चाहता हूं उसे कैसे पूरा कर सकता हूं और फिर ट्रांसफर कर दूंगा?"
स्टीन स्कुट

11

यह सामान्य एफ़टीपी कार्यक्रम के साथ संभव नहीं है क्योंकि म्यूट पुनरावृत्ति का उपयोग नहीं करता है। आप ncftp का उपयोग कर सकते हैं और फिर 'mput -r फ़ोल्डर' कह सकते हैं।

शुभकामनाएं, फैबियन


ठीक ऐसा ही मैंने हाल ही में एक RHEL 5 बॉक्स पर किया है। EPEL पैकेज में, निष्पादन योग्य का नाम ncftpput है।
Suppressingfire

सर्वर के कॉन्फ़िगरेशन में कुछ भी नहीं बदल सकते। मैं सिर्फ एक उपयोगकर्ता हूँ ...

यह आपके क्लाइंट पर निर्भर करता है। सर्वर पर नहीं।
21

मैं इसे इस तरह से करना पसंद करता हूं। धन्यवाद।
Mojtaba Rezaeian

11

मैंने एक बैश स्क्रिप्ट बनाई:

#!/bin/bash
ftp_site=ftp.yoursite.net
username=my_user_name
passwd=my_password
remote=/path/to/remote/folder
folder=$1
cd /path/to/local/folder/$folder
pwd
ftp -in <<EOF
open $ftp_site
user $username $passwd
mkdir $remote/$folder
cd $remote/$folder
mput *
close
bye

और इसके साथ बुलाया

find . -type d -exec ./recursive-ftp.sh {} \;

काम करने लगता है।


0

सिक्योर कॉपी स्कैप में एक आरआर रिकर्सिव फ्लैग होता है जो आपको उपयोगी लग सकता है।


प्रश्न सरल ftp एक्सेस के बारे में है .. scp / sftp नहीं!
Mojtaba Rezaeian

-1

आप जिस कमांड को अपलोड करना चाहते हैं उसे डायरेक्ट कमांड के लिए ओपनशेल्ड सीडी खोलें:

1. gci -r | % {if ($_.PSIsContainer) {$t = $((($_.fullname -split "\\")[$(((pwd) -split "\\").length)..200]) -join "/"); "mkdir ""$t""`r`nmput ""$t/*"" ""$t"""}} | sc .\mput_all
2. notepad .\mput_all

अपने ftp विंडो में परिणाम पेस्ट करें। का आनंद लें। आधार निर्देशिका से सभी फ़ाइलों को स्थानांतरित करने के लिए mput * जोड़ना न भूलें।


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