দুটি রিমোটের মধ্যে কীভাবে ফাইলগুলিকে আরএসএনসি করবেন?


54

আমি স্থানীয় শেল ব্যবহার করে দুটি রিমোট হোস্টের মধ্যে ফাইল স্থানান্তর করতে চাই, তবে দুটি রিমোটগুলি নিম্নলিখিত হিসাবে নির্দিষ্ট করা থাকলে আরএসসিএন সিঙ্ক্রোনাইজেশন সমর্থন করে না বলে মনে হয়:

$ rsync -vuar host1:/var/www host2:/var/www
The source and destination cannot both be remote.

অনুরূপ ফলাফল অর্জনের জন্য আমি আর কী কী কার্যকারিতা / আদেশ ব্যবহার করতে পারি?



1
প্রকৃতপক্ষে আপনি ২ য় হোস্টে sshfs উপকার করে 2 রিমোট হোস্টের মধ্যে আরএসএনসি করতে পারেন। হোস্ট 3 এবং হোস্ট 2 এ মাউন্ট করতে কেবল এসএসএফএস ব্যবহার করুন Then তারপরে 1 এবং 2 এর মধ্যে আরএসএনসি করুন
উইলিয়াম লেগ

@ উইলিয়ামল্যাগ ব্যবহারের অসুবিধাটি sshfsহ'ল rsyncউত্স এবং গন্তব্য ফাইল সিস্টেমগুলি উভয়কে স্থানীয় হিসাবে দেখায়, তাই এটি তার ব-দ্বীপটি অ্যালগরিদমকে অক্ষম করে। এই সময়ে আপনি প্রায় পাশাপাশি ব্যবহার করতে পারেন cp -pএই এবং এর পরবর্তী মন্তব্যগুলির প্রস্তাব দেওয়া উত্তরটি দেখুন ।
রোয়াইমা

উত্তর:


50

আপনি আবিষ্কার করেছেন যে আপনি একটি দূরবর্তী উত্স এবং একটি দূরবর্তী গন্তব্য সঙ্গে rsync ব্যবহার করতে পারবেন না। দুটি সার্ভার একে অপরের সাথে সরাসরি কথা বলতে পারে না বলে ধরে নেওয়া, আপনার স্থানীয় মেশিনের মাধ্যমে টানেলের মাধ্যমে ssh ব্যবহার করা সম্ভব।

পরিবর্তে

rsync -vuar host1:/var/www host2:/var/www

আপনি এটি ব্যবহার করতে পারেন

ssh -R localhost:50000:host2:22 host1 'rsync -e "ssh -p 50000" -vuar /var/www localhost:/var/www'

আপনি যদি ভাবছেন তবে -Rবিকল্পটি হোস্ট 1 এ 50000 পোর্ট থেকে একটি বিপরীত চ্যানেল সেট আপ করবে যা মানচিত্রগুলি (আপনার স্থানীয় মেশিনের মাধ্যমে) হোস্ট 2 তে 22 পোর্টে স্থাপন করবে। হোস্ট 1 থেকে হোস্ট 2 এর সাথে সরাসরি সংযোগ নেই।


1
আমি @ রোয়াইমার সমাধানটি পছন্দ করি তবে বিভিন্ন কারণে এটি আমার পক্ষে কাজ করতে পারা যায় না। শেষ পর্যন্ত আমি sshfsউভয় দূরবর্তী ডিরেক্টরি স্থানীয়ভাবে মাউন্ট করতাম , তারপরে rsyncদুটি স্থানীয়ভাবে মাউন্ট করা ডিরেক্টরিতে ব্যবহৃত হয়েছিল।
এইডান

কী ব্যবহার করা হয়েছে এমন উদাহরণ দেখা সম্ভব? -iSsh কমান্ডগুলির জন্য প্রয়োজনীয় কীগুলি নির্দিষ্ট করতে কীভাবে ব্যবহার করবেন তা নির্ধারণ করতে সমস্যা হচ্ছে ।
onassar

@ অনাসার কমান্ডের -i key...পরে উদ্ধৃতিগুলির ভিতরে প্যারামিটার যুক্ত করুন ssh। যদি তা আপনাকে সহায়তা না করে তবে দয়া করে একটি নতুন প্রশ্ন জিজ্ঞাসা করতে নির্দ্বিধায়, এই উত্তরটিকে প্রসঙ্গে উল্লেখ করুন
রোয়াইমা

1
বিপরীত সংযোগ স্থানীয় পক্ষের ~ / .ssh / কনফিগারেশন পড়তে পারে না - এমন কোনও কিছু ব্যবহার করা দরকার যা সমাধান করা যেতে পারে যেমন কোনও এসএসএইচ কনফিগারেশন ফাইল নেই
ফ্লোরেনজ ক্লি

1
'ধরে নিচ্ছি যে দুটি সার্ভার একে অপরের সাথে সরাসরি কথা বলতে পারে না'। এই সমাধানটি ফায়ারওয়াল বা নাট ইস্যুতে কাজ করে যা সরাসরি এসএসএইচ সংযোগ রোধ করে । তবে সুরক্ষার কারণে উত্স ব্যবহারকারীর (হোস্ট 1 এ) গন্তব্যটিতে কোনও কী বা শংসাপত্র বা অপর্যাপ্ত লেখার অনুমতি নেই সে ক্ষেত্রে এটি বিষয়টি চিহ্নিত করে না। তার জন্য কেভিন কক্সের সমাধান দেখুন বা কোনও স্ক্রিপ্ট ব্যবহার করে বা পরোক্ষ সংযোগটি অবলম্বন করুন scp -3
সিড্রিক নাইট

22

আপনি কেন বলেননি যে আপনি কেন একটি হোস্টে লগইন করতে চান না এবং অন্যটিতে অনুলিপি করেন তাই আমি আমার কারণ এবং সমাধানগুলির মধ্যে একটি ভাগ করব।

আমি একটি মেশিনে লগইন করতে পারি না তারপরে অন্যটিতে আরএসআইএনসি করি কারণ হোস্টের কাছে একটি এসএসএইচ কী নেই যা অন্যটিতে লগইন করতে পারে। আমি লগ ইন করার সময় প্রথম হোস্টকে আমার এসএসএইচ কীটি ব্যবহার করার অনুমতি দেওয়ার জন্য এসএসএইচ এজেন্ট ফরওয়ার্ডিং ব্যবহার করে এটি সমাধান করেছি।

সতর্কতা: এসএসএইচ ফরোয়ার্ডিং আপনার লগিনের সময়কালের জন্য হোস্টকে আপনার এসএসএইচ কীটি ব্যবহার করার অনুমতি দেয়। যদিও তারা আপনার কীটি অনুলিপি করতে পারে না তারা এগুলি দিয়ে অন্য মেশিনে লগইন করতে পারে। নিশ্চিত করুন যে আপনি ঝুঁকিগুলি বুঝতে পেরেছেন এবং আপনার বিশ্বাস নেই এমন মেশিনগুলির জন্য এজেন্ট ফরওয়ার্ডিং ব্যবহার করবেন না।

নিম্নলিখিত হুকুম থেকে সরাসরি সংযোগ খুলতে, SSH এজেন্ট ফরওয়ার্ডিং ব্যবহার করবে host1করার host2। এটির সুবিধা রয়েছে যে কমান্ডটি চালিত মেশিনটি স্থানান্তরকে বাধা দেয় না।

ssh -A host1 rsync -vuar /var/www host2:/var/www

3
বৈধ ব্যবহারের কেসটি ব্যাখ্যা করার জন্য +1 (যেখানে হোস্ট 1 এ দূরবর্তী ব্যবহারকারীর গন্তব্য সার্ভারে কোনও অনুমতি নেই); গুরুত্বপূর্ণ সুরক্ষার সতর্কতার জন্য ( কী সীমাবদ্ধতার পরিবর্তে নেটওয়ার্ক ঘুরে দেখার -Dচেয়ে পোর্ট ফরওয়ার্ডিং ব্যবহার করুন -A); সুবিধা ব্যাখ্যা করার জন্য; কমান্ড সংক্ষিপ্ত হওয়ার জন্য; এবং এটি আসলে কাজ করছে। মনে রাখবেন যে username@host1এটি স্থানীয় ব্যবহারকারীর নাম থেকে পৃথক কিনা তা নির্দিষ্ট করে দেওয়ার দরকার হতে পারে । এছাড়াও যে rsync হোস্ট 2 এর সাথে সংযোগ করার সময় হোস্ট কী যাচাইকরণ সম্পাদন করে, তাই হোস্ট 1 এর কী ইতিমধ্যে host / .ssh / ज्ञात_হোস্টের হোস্ট 2 এ থাকা উচিত বা কমান্ডটি ব্যর্থ হবে।
সিড্রিক নাইট

অলৌকিক উত্তর, এটি আমাকে টিমসিটিতে এমন কিছু জিনিস অর্কেস্টেট করতে সহায়তা করেছিল যা আমি এর আগে করতে পারিনি (অন্যান্য টিমসিটি ব্যবহারকারীদের জন্য এনবি, আপনার বিল্ড কনফিগারেশনে "এসএসএইচ এজেন্ট" নামক "বিল্ড বৈশিষ্ট্য" যুক্ত করতে হবে ssh -A, সঙ্গম দেখুন। jetbrains.com/display/TCD10/SSH+Agent )।
জন জুইঙ্ক 10

12

আমি রোইমার উত্তরটি পছন্দ করি তবে পথ দু'টি উদাহরণে একই, কোনটি অস্পষ্ট করে। আমরা প্রতিষ্ঠিত করেছি যে নিম্নলিখিতগুলি কার্যকর করে না:

rsync -vuar host1:/host1/path host2:/host2/path

তবে এটি করে (আমি -Rপূর্বনির্ধারিত থেকে বিকল্পটি লোকালহোস্টের বাইন্ড_এড্রেস বাদ দিয়েছি ):

ssh -R 50000:host2:22 host1 'rsync -e "ssh -p 50000" -vuar /host1/path localhost:/host2/path'

নোট করুন যে আপনার কাছে হোস্ট 1 এ প্রাইভেট কী এবং হোস্ট 2 তে পাবলিক কী সহ দুটি দূরবর্তী হোস্টের মধ্যে সঠিকভাবে সেট আপ করতে হবে।

সংযোগটি ডিবাগ করার জন্য, এটি দুটি ভাগে বিভক্ত করুন এবং ভার্বোজ স্থিতি যুক্ত করুন:

localhost$ ssh -v -R 50000:host2:22 host1

এটি যদি কাজ করে তবে আপনার হোস্ট 1 এ একটি শেল থাকবে। এখন হোস্ট 1 থেকে rsync কমান্ড চেষ্টা করুন। আমি এটি অন্য একটি উইন্ডোতে করার পরামর্শ দিচ্ছি যাতে verbose ssh তথ্য আরএসসিএন স্থিতির তথ্যের সাথে একত্রে মিশে না যায়:

host1$ rsync -e "ssh -p 50000" -vuar /host1/path localhost:/host2/path

আমার উদাহরণে পথগুলি উত্স, গন্তব্য। rsyncHost2 উপর লক্ষ্য সঙ্গে host1 উপর প্রবর্তিত হয়। (আপনি একটি মন্তব্যে
স্পষ্টির

1
আমি মন্তব্য করতাম, তবে আপনি 50+ এর খ্যাতি ছাড়া অন্য কারও পোস্টে মন্তব্য করতে পারবেন না ।
জয়ব্রৌ

7

বাশ স্ক্রিপ্ট সিনট্যাক্সে রোয়াইমার উত্তর পুনরায় ফর্ম্যাট করা (এবং স্পষ্টতার জন্য লাইন ধারাবাহিকতা অক্ষর '\' যুক্ত করা) আমি এলোমেলোভাবে পোর্ট 22000 বেছে নিয়েছি ...

SOURCE_USER=user1
SOURCE_HOST=hostname1
SOURCE_PATH=path1

TARGET_USER=user2
TARGET_HOST=host2
TARGET_PATH=path2

ssh -l $TARGET_USER -A -R localhost:22000:$TARGET_HOST:22 \
$SOURCE_USER@$SOURCE_HOST "rsync -e 'ssh -p 22000' -vuar $SOURCE_PATH \
$TARGET_USER@localhost:$TARGET_PATH"

1
আমার কাছে মনে হচ্ছে আপনি সমস্ত কাজটি তার স্বেচ্ছাসেবক হোস্টনামের পরিবর্তনশীল দিয়ে প্রতিস্থাপন করবেন?
জেফ শ্যাচলার

3
হ্যা, আমি করেছিলাম. এটি আমার জন্য স্বচ্ছতা যুক্ত করে যার উপর সোর্স মেশিনটি, কোনটি লক্ষ্য এবং যেখানে উত্স এবং লক্ষ্য পথগুলি যায়। এই সমস্ত কাজ করতে আমার কিছুটা সময় লেগেছে এবং এটি সহজ স্থানধারক হোস্টনাম থেকে স্পষ্ট নয়।
ডেভিড আই।

পরবর্তী সময় দয়া করে এডিট করে সরাসরি অন্য কারোর উত্তর উন্নত করতে দ্বিধা বোধ করবেন না।
রোয়াইমা

এই উত্তরটি আমার পক্ষে সমাধান ছিল কারণ এটি বিপরীতমুখী টানেলের (-আর) সাথে এসএসএইচ-এজেন্ট ফরওয়ার্ডিং (-A) একত্রিত করে।
ক্যামেলথেমেমেল

3

আদর্শ উপায় হ'ল rsyncthose সার্ভারগুলির মধ্যে একটিতে এটি চালানো । তবে আপনি যদি রিমোট সার্ভারে কোনও স্ক্রিপ্ট চালাতে না চান। আপনি আপনার স্থানীয় সিস্টেমে স্ক্রিপ্ট চালাতে এবং একটি ssh করতে এবং সেখানে আরএসসিএনসি চালাতে পারেন।

ssh user@$host1 <<ENDSSH >> /tmp/rsync.out 2>&1 rsync -vuar /var/www host2:/var/www ENDSSH

এছাড়াও, আপনি সম্ভবত সচেতন হিসাবে rysnc একটি উপায় সিঙ্ক্রোনাইজেশন করে। আপনি যদি দ্বিপথের সিঙ্ক্রোনাইজেশন চান তবে আপনি osync ( https://github.com/deajan/osync ) এ দেখতে পারেন । আমি এটি ব্যবহার করেছি এবং এটি সহায়ক বলে মনে করেছি।


0

অতিরিক্ত তথ্য হিসাবে:

আপনি যদি অন্য দুটি মেশিন সংযোগ করতে জাম্প হোস্ট ব্যবহার করেন তবে তারা একে অপরকে সরাসরি পৌঁছাতে না পারলে আপনি এই জাতীয় দুটি মেশিনের মধ্যে (লাফ হোস্টে) মাঝারি হিসাবে sshfs ব্যবহার করতে পারেন:

$ mkdir ~/sourcepath ~/destpath
$ sshfs sourcehost:/target/dir ~/sourcepath
$ sshfs desthost:/target/dir ~/destpath
$ rsync -vua ~/sourcepath ~/desthpath

এসএসএইচএফস জাম্প হোস্টের দুটি পাথ সরবরাহ করে এবং আরএসসিএনএস সর্বদা এর মতো ফাইলগুলির সিঙ্ক্রোনাইজেশন পরিচালনা করে (এটি স্থানীয়ভাবে কার্যকরভাবে পার্থক্য সহ)।


1
নোট করুন যে পারফরম্যান্সটি ভয়ানক হবে। এর কারণ হিসাবে পরিবর্তনগুলি সনাক্ত করতে আরএসসিএনসি উত্স সার্ভার থেকে ফাইলটি পড়বে, পুরো জিনিসটি নেটওয়ার্কের মাধ্যমে স্থানান্তর করবে। এটি বলা হচ্ছে যে আপনি যদি সরাসরি ট্রান্সফার না করতে পারেন তবে আপনি আরএসসিএনসি ব্যবহার করলে এটি আপনাকে খেতে হবে। এছাড়াও গন্তব্যটিকে মাউন্ট করবেন না, এটি অপ্রয়োজনীয় এবং rsync কিছু ডিফল্ট পরিবর্তন ঘটায় কারণ এটি মনে করে যে এটি একটি স্থানীয় ডিস্কের সাথে কথা বলছে।
কেভিন কক্স

0

আপনি যে কোনও একটি কম্পিউটারে একটি rsyncd (সার্ভার) চালাতে পারেন।

এটিই আমি গ্রহণ করছি, যেহেতু আমি পাসওয়ার্ড ছাড়াই মূল হিসাবে 'গন্তব্য' অ্যাক্সেসের জন্য 'উত্স' (আরএসসিএন শব্দটিতে) এসএসএস ব্যবহার করতে চাই না (যেমন এসএসএইচ টানেলিংটি আরএসসিএন-এর সাথে ব্যবহারের প্রয়োজন হিসাবে) একটি পান্ডুলিপি)

আমার ক্ষেত্রে, আমি সোর্স পিসি থেকে অনুমোদিত একক ব্যবহারকারীর সাথে সোর্স সাইড থেকে আরএসসিএনসি ব্যবহার করে গন্তব্য কম্পিউটারে একটি আরএসসিএনডি সার্ভার সেট আপ করেছি।

দুর্দান্ত কাজ করে।


0

এটি ব্যবহার করার চেষ্টা করুন। এটা আমার জন্য কাজ করে.

ssh src_user@src_host 'rsync -av /src/dir/location/ dest_user@dest_host:/dest/dir/loc/'

0

স্ক্রিপ্ট ব্যবহার করা সহজ

কয়েক বছর ধরে আমি এখানে প্রতিটি অন্যান্য উত্তরের মতো কম-বেশি একই কৌশল দ্বারা বহুবার এটি করেছি। তবে কিছু বিশদ ভুল পাওয়া খুব সহজ এবং বিষয়টি নীচে স্ক্রিপ্ট নিয়ে এসেছি তা বের করতে অনেক সময় ব্যয় করা:

  1. সমস্ত বিবরণ নির্দিষ্ট করার জন্য এটি সহজ করে তোলে (উত্স, গন্তব্য, বিকল্পগুলি)
  2. প্রতিটি একক ধাপে ক্রমবর্ধমান পরীক্ষা করে এবং কিছু ভুল হলে প্রতিক্রিয়া দেয়, যাতে আপনি কী ঠিক করবেন তা জানেন।
  3. ssh -Aপ্রমাণীকরণের ডেটা প্রচারে ব্যর্থ হয় এমন কেসগুলির চারপাশে কাজ করে (কখনও কখনও কেন এটি ঘটে তা জানেন না যেহেতু মূল কারণ অনুসন্ধান করার চেয়ে কাজের সমাধানটি সহজ ছিল)
  4. অবশেষে কাজ করে।

স্ক্রিপ্টটি কীভাবে ব্যবহার করবেন

  1. আপনি কোনও পাসওয়ার্ড টাইপ না করে লোকালহোস্ট থেকে উভয় হোস্টকে ছুঁড়ে ফেলতে পারেন তা নিশ্চিত করুন ।
  2. স্ক্রিপ্টের প্রথম কয়েকটি লাইনে ভেরিয়েবল সেট করুন
  3. এটি কার্যকর করুন।

কিভাবে এটা কাজ করে

আমি যেমন বলেছি যে এটি এখানে অন্য প্রতিটি উত্তরের মতো একই কৌশল ব্যবহার করে:

  • -Rলোকালহোস্ট থেকে হোস্ট 1 এ এসএসএস- এর বিকল্প একই সময়ে পোর্ট ফরোয়ার্ডিং সেটআপ করার পরে হোস্ট 1 কে লোকালহোস্টের মাধ্যমে হোস্ট 2 ( -R localhost:$FREE_PORT:$TARGET_ADDR_PORT) এর সাথে সংযোগ করার অনুমতি দেয়
  • -Aদ্বিতীয় এসএস চ্যানেলের সহজ প্রমাণীকরণের অনুমতি দেওয়ার জন্য এসএসএসের বিকল্প

আমার এই জটিল! কোন সহজ উপায় আছে?

যখন উৎস থেকে গন্তব্যে সকল বা অধিকাংশ বাইট কপি এটা দূরে সহজে ব্যবহারযোগ্য করতে tar:

ssh $SOURCE_HOST "tar czf - $SOURCE_PATH" \
    | ssh $TARGET_HOST "tar xzf - -C $TARGET_PATH/"

এই পান্ডুলিপি

#!/bin/bash
#-------------------SET EVERYTHING BELOW-------------------
# whatever you type after ssh to connect to SOURCE/TARGE host 
# (e.g. 1.2.3.4:22, user@host:22000, ssh_config_alias, etc)
# So if you use "ssh foo" to connect to SOURCE then 
# you must set SOURCE_HOST=foo
SOURCE_HOST=host1 
TARGET_HOST=host2 
# The IP address or hostname and ssh port of TARGET AS SEEN FROM LOCALHOST
# So if ssh -p 5678 someuser@1.2.3.4 will connect you to TARGET then
# you must set TARGET_ADDR_PORT=1.2.3.4:5678 and
# you must set TARGET_USER=someuser
TARGET_ADDR_PORT=1.2.3.4:5678
TARGET_USER=someuser

SOURCE_PATH=/mnt/foo  # Path to rsync FROM
TARGET_PATH=/mnt/bar  # Path to rsync TO

RSYNC_OPTS="-av --bwlimit=14M --progress" # rsync options
FREE_PORT=54321 # just a free TCP port on localhost
#---------------------------------------------------------

echo -n "Test: ssh to $TARGET_HOST: "
ssh $TARGET_HOST echo PASSED| grep PASSED || exit 2

echo -n "Test: ssh to $SOURCE_HOST: "
ssh $SOURCE_HOST echo PASSED| grep PASSED || exit 3

echo -n "Verifying path in $SOURCE_HOST "
ssh $SOURCE_HOST stat $SOURCE_PATH | grep "File:" || exit 5

echo -n "Verifying path in $TARGET_HOST "
ssh $TARGET_HOST stat $TARGET_PATH | grep "File:" || exit 5

echo "configuring ssh from $SOURCE_HOST to $TARGET_HOST via locahost"
ssh $SOURCE_HOST "echo \"Host tmpsshrs; ControlMaster auto; ControlPath /tmp/%u_%r@%h:%p; hostname localhost; port $FREE_PORT; user $TARGET_USER\" | tr ';' '\n'  > /tmp/tmpsshrs"

# The ssh options that will setup the tunnel
TUNNEL="-R localhost:$FREE_PORT:$TARGET_ADDR_PORT"

echo 
echo -n "Test: ssh to $SOURCE_HOST then to $TARGET_HOST: "
if ! ssh -A $TUNNEL $SOURCE_HOST "ssh -A -F /tmp/tmpsshrs tmpsshrs echo PASSED" | grep PASSED ; then
        echo
        echo "Direct authentication failed, will use plan #B:"
        echo "Please open another terminal, execute the following command"
        echo "and leave the session running until rsync finishes"
        echo "(if you're asked for password use the one for $TARGET_USER@$TARGET_HOST)"
        echo "   ssh -t -A $TUNNEL $SOURCE_HOST ssh -F /tmp/tmpsshrs tmpsshrs"
        read -p "Press [Enter] when done..."
fi

echo "Starting rsync"
ssh -A $TUNNEL $SOURCE_HOST "rsync -e 'ssh -F /tmp/tmpsshrs' $RSYNC_OPTS $SOURCE_PATH tmpsshrs:$TARGET_PATH"

echo
echo "Cleaning up"
ssh $SOURCE_HOST "rm /tmp/tmpsshrs"

tarযখন আপনি একটি একক (অ-বর্ধিত) স্থানান্তর পেয়েছেন এবং আপনার স্থানান্তর একক পাসে সম্পূর্ণ হয় তখন দুর্দান্ত । অন্যদিকে, rsyncফরওয়ার্ডিং হ্যান্ডলগুলি পুনরায় আর্টস এবং ইনক্রিমেন্টাল ট্রান্সফার সহ।
রোয়াইমা

1
অবশ্যই @roaima - আমি টার সমতুল্য বিবেচনা করি না। আমি এই পাসিং রেফারেন্সটি সেই দিনের জন্য রেখে দিয়েছি যখন কোনও সমস্যা সমাধানের জন্য আমি এটি পড়ছি যেখানে আরএসসিএন 100% প্রয়োজন হবে না।
এনডেমো

-1

ফাইলগুলি স্থানান্তর করার tarমাধ্যমে এটি ব্যবহার করা সম্ভব ssh:

ssh -n user1@host1 'tar jcf - -C /var/www .' | ssh user2@host2 'tar jxvf - -C /var/www'

আপনি যদি সংরক্ষণাগারটির পরিবর্তে সংরক্ষণাগারটি সংকুচিত করতে চান তবে দুটি স্থানে jপ্যারামিটার (for tar) পরিবর্তন করুন । সাধারণত তুলনায় উচ্চতর সংকোচনের পরিমাণ থাকে তবে এটি ধীর হয় তাই আপনার প্রয়োজনীয়তার উপর নির্ভর করে এটি পরিবর্তন করুন (দেখুন: জিজিপ 2 বনাম জিজিপ ))zgzipbzip2bzip2gzip

সম্পর্কিত: ফায়ারওয়ালের পিছনে যখন রিমোট সার্ভার থেকে এসএসএইচ-এ ট্যারি পাইপযুক্ত দুটি রিমোট হোস্টের মধ্যে কীভাবে অনুলিপি করবেন?


বিকল্পভাবে (স্বচ্ছ সংকোচনের কারণে ব্যান্ডউইদথ নিরাপদে রাখতে) sshfsস্থানীয় হিসাবে দূরবর্তী ফাইল-সিস্টেমটি মাউন্ট করতে rsyncএবং যথারীতি ব্যবহার করা সম্ভব, যেমন

$ sshfs user1@host1:/var/www /mnt
$ rsync -vuar /mnt user2@host2:/var/www

1
স্থানীয়ভাবে ফাইল-সিস্টেম মাউন্ট করা উত্স এবং স্থানীয় মেশিনের মধ্যে কোনও ব্যান্ডউইথকে সংরক্ষণ করবে না। এটা তোলে হবে তবে স্থানীয় ও গন্তব্য মধ্যে ব্যান্ডউইডথ সংরক্ষণ করুন (যেমন স্থানীয়ভাবে মাউন্ট করা হয়নি)। আপনি যদি গন্তব্যস্থলে ব্যান্ডউইদথ সংরক্ষণ করার চেষ্টা করছেন তবে এইভাবে আরএসসিএনসি ব্যবহার করা বোধগম্য।
কেভিন কক্স 14
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.