নতুন সার্ভারে 55 জিবি চিত্র স্থানান্তর করার দ্রুততম উপায়


64

আমার কাছে বর্তমানে দুটি সেন্টস সার্ভার রয়েছে। আমাকে জানতে হবে কীভাবে এবং দ্রুততম উপায়টি কীভাবে ইমেজ ডিরেক্টরিতে "টার" হবে এবং এসসিপিটি এটি দিয়ে যাবে?

আমি কি সুপারিশ করেছি এই দ্রুততম উপায়, কারণ তারিং চিরকালের জন্য নিচ্ছে ... আমি আদেশটি চালিয়েছি:

tar cvf imagesbackup.tar images

এবং আমি এটি এড়াতে যাচ্ছি।

দ্রুততর কোনও উপায় থাকলে আমাকে জানান Let আমার উভয় মেশিনে দূরবর্তী / এসএসএইচ অ্যাক্সেস রয়েছে।


12
Sneakernet?
নিক টি

উত্তর:


98

আপনার স্থানীয় ডিস্কে লেখার জন্য টার ব্যবহার করার পরিবর্তে, আপনি ssh ব্যবহার করে সরাসরি নেটওয়ার্কের রিমোট সার্ভারে লিখতে পারেন।

server1$ tar -zc ./path | ssh server2 "cat > ~/file.tar.gz"

আপনার "ssh" কমান্ড অনুসরণ করে এমন যে কোনও স্ট্রিং ইন্টারেক্টিভ লগনের পরিবর্তে রিমোট সার্ভারে চালিত হবে। আপনি এসএসএইচের মাধ্যমে সেই দূরবর্তী কমান্ডগুলি থেকে এবং ইনপুট / আউটপুট পাইপ করতে পারেন যেন তারা স্থানীয়। কমান্ডটি উদ্ধৃতিতে রেখে কোনও বিভ্রান্তি এড়ানো যায়, বিশেষত পুনঃনির্দেশ ব্যবহার করার সময়।

অথবা, আপনি সরাসরি অন্য সার্ভারে টার ফাইলটি বের করতে পারেন:

server1$ tar -zc ./path | ssh server2 "tar -zx -C /destination"

কদাচিৎ-ব্যবহৃত -Cবিকল্পটি নোট করুন । এর অর্থ "কিছু করার আগে প্রথমে এই ডিরেক্টরিতে পরিবর্তন করুন।"

অথবা, সম্ভবত আপনি গন্তব্য সার্ভার থেকে "টান" করতে চান:

server2$ tar -zx -C /destination < <(ssh server2 "tar -zc -C /srcdir ./path")

নোট করুন <(cmd) কনস্ট্রাক্টটি ব্যাশ-এ নতুন এবং পুরানো সিস্টেমে কাজ করে না। এটি একটি প্রোগ্রাম চালায় এবং একটি পাইপে আউটপুট প্রেরণ করে এবং সেই পাইপটিকে কমান্ডের মধ্যে এমনভাবে প্রতিস্থাপন করে যেন এটি কোনও ফাইল।

আমি কেবল নীচে সহজে উপরোক্তটি লিখতে পারতাম:

server2$ tar -zx -C /destination -f <(ssh server2 "tar -zc -C /srcdir ./path")

বা নিম্নলিখিত হিসাবে:

server2$ ssh server2 "tar -zc -C /srcdir ./path" | tar -zx -C /destination

অথবা, আপনি নিজেকে কিছুটা বেদনা বাঁচাতে এবং কেবল আরএসসিএনসি ব্যবহার করতে পারেন:

server1$ rsync -az ./path server2:/destination/

শেষ অবধি, মনে রাখবেন যে স্থানান্তর করার আগে ডেটা সংকুচিত করা আপনার ব্যান্ডউইদথকে হ্রাস করবে, তবে খুব দ্রুত সংযোগে এটি কার্যকরভাবে আরও বেশি সময় নিতে পারে । এটি কারণ আপনার কম্পিউটারটি চালিয়ে যাওয়ার জন্য খুব দ্রুত সংক্ষেপ করতে সক্ষম না হতে পারে: যদি 100MB কে কমপ্রেস করা 100MB প্রেরণ করতে লাগে তার চেয়ে বেশি সময় নেয় , তবে এটি সঙ্কুচিত পাঠানো আরও দ্রুত faster

পর্যায়ক্রমে, আপনি জিজপ করতে পাইপিং বিবেচনা করতে পারেন (-z বিকল্পটি ব্যবহার না করে) যাতে আপনি একটি সংকোচন স্তর নির্দিষ্ট করতে পারেন। এটি আমার অভিজ্ঞতা হয়েছে যে সংকোচযোগ্য ডেটা সহ দ্রুত নেটওয়ার্ক সংযোগগুলিতে, 2 বা 3 স্তরের গিজিপ ব্যবহার করা (ডিফল্ট 6 হয়) বেশিরভাগ ক্ষেত্রে সর্বোত্তম সামগ্রিক থ্রুপুট দেয়। তাই ভালো:

server1$ tar -c ./path | gzip -2 | ssh server2 "cat > ~/file.tar.gz"

Rsync সুন্দরভাবে কাজ করেছে - উড়তে সংক্ষেপে, পুরো ফোল্ডারগুলি অনুলিপি করে, ভাঙা লিঙ্কটিতে পুনরায় শুরু করে। সব এক সাধারণ কমান্ড। ভাল লাগবে। এই বিকল্পগুলি আমি দরকারী বলে মনে করি: z: কমপ্রেস আর: পুনরাবৃত্তি = কপি সাবফোল্ডার ভি: ভার্জোজ। আমার rsync কমান্ড উদাহরণ: rsync -azvr / src-পাথ / ব্যবহারকারীর নাম @ dest_server: / DEST / পথ /
বুরূজ

68

আমি নিজের উপর এটি ছড়িয়ে দিতে প্রলুব্ধ হব - এটি সংকোচন করে এবং লিঙ্ক ক্ষতি ভালভাবে পরিচালনা করে।


14
rsync হ'ল সঠিক সরঞ্জাম tool
ধনী

4
+1 - ইয়ে আরসিএনসি!
ইভান অ্যান্ডারসন

1
+1, কেবল গাদা করার জন্য। এছাড়াও, আমি সত্যিই আরএসএনসি পছন্দ করি।
স্টিভেন সোমবার

1
কিন্তু আরএসএনসি ব্যবহার করার সময় আপনাকে ম্যানুয়ালি ডেটা সংকোচিত করতে হবে (যদি আপনি নিজের ডেটা সংকুচিত রাখতে চান)
wlk

আপনি কীভাবে সংযুক্ত ফাইল (গুলি) আরএসআইএনসি দিয়ে সংরক্ষণ করতে পারেন?
দোলান অ্যান্টিনিচি

12

যদি আপনি কেবল এগুলি আপ করেন এবং অন্য কিছু না করেন তবে এটি কেবল সর্বনিম্ন গতি লাভের সাথে প্রচুর সময় নষ্ট করবে।

সুতরাং সহজেই সিভিএফ স্যুইচগুলির সাথে ফাইলগুলি টেরিং করা সমস্ত 55 জিবি চিত্র পড়তে এবং ডিস্কে আবার লিখতে কার্যকরভাবে সময় দিতে পারে। (কার্যকরভাবে এটি আরও বেশি সময় নষ্ট হবে যেহেতু যথেষ্ট পরিমাণে ওভারহেড থাকবে)।

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

তারের উপর দিয়ে বিশাল টার আর্কাইভ স্থানান্তরিত করার সবচেয়ে বড় অসুবিধা হ'ল যদি কিছু ভুল হয়ে যায় তবে এর অর্থ হতে পারে আপনাকে আবার শুরু করতে হবে।

আমি সেভাবে ব্যবহার করব:

md5sum /images/* > md5sum.txt
scp -r images/* user@host:/images/

নতুন সার্ভারে

md5sum /images/* > md5sum_new.txt

এবং তারপর ঠিক diff। এবং যেহেতু scp ফ্লাইতে সংকোচনের সমর্থন করে সেখানে আলাদা সংরক্ষণাগারগুলির প্রয়োজন হয় না।

সম্পাদন করা

আমি এমডি 5 তথ্য রাখব যেহেতু এটি ওপিতে কার্যকর ছিল। তবে একটি মন্তব্য আমাকে নতুন অন্তর্দৃষ্টি দিয়ে আঘাত করেছে। সুতরাং অনুসন্ধানের একটি বিট এই তথ্য দরকারী টুকরা প্রদান। দয়া করে নোট করুন যে এখানে বিষয়টি এসফটিপিটি সরাসরি এসসিপি নয়

এফটিপি এর বিপরীতে, এসএফটিপি ফাইল স্থানান্তর করতে ওভারহেড যুক্ত করে। ক্লায়েন্ট এবং সার্ভারের মধ্যে কোনও ফাইল স্থানান্তরিত হওয়ায় এটি "প্যাকেট" নামে ছোট ছোট ভাগে বিভক্ত হয়ে যায়। উদাহরণস্বরূপ, ধরুন প্রতিটি প্যাকেট 32KB। এসএফটিপি প্রোটোকল প্রেরিত হওয়ার সাথে সাথে প্রতিটি 32 কেবি ফাইলের একটি চেকসাম করে এবং সেই প্যাকেটের সাথে সেই চেকসামও অন্তর্ভুক্ত করে। রিসিভার সেই প্যাকেটটি পায় এবং ডেটা ডিক্রিপ্ট করে এবং তারপরে চেকসামটি যাচাই করে। চেকসাম নিজেই সিআরসি 32 চেকসামের চেয়ে "শক্তিশালী"। (যেহেতু এসএফটিপি 128-বিট বা উচ্চতর চেকসাম, যেমন এমডি 5 বা এসএএচ ব্যবহার করে এবং এটি প্রতিটি প্যাকেটে করা হয়, তাই স্থানান্তরের অংশ হিসাবে একটি খুব দানাদার অখণ্ডতা যাচাই করা হয়)) সুতরাং, প্রোটোকল নিজেই ধীর (অতিরিক্ত ওভারহেডের কারণে), তবে স্থানান্তরটির সফল সমাপ্তি মানে, ডি ফ্যাক্টো,


আপনাকে অনেক ধন্যবাদ, এমডি 5সুম কী করছে? এবং ভিন্ন কি? ধন্যবাদ, এখন পারফর্ম করে!
অ্যান্ড্রু ফ্যাশন

2
md5sum (বা md5) ফাইলগুলির একটি চেকসাম নেয়। ডিফ ফাইলগুলির মধ্যে পার্থক্য সন্ধান করে (ম্যান ডিফ) চেকসাম একটি স্ট্রিং, একটি হ্যাশ তৈরি করে যে ফাইলটি যদি ট্রানজিটে পরিবর্তিত হয় ... কিছুটা উল্টে যায় তবে একটি ত্রুটি ... আপনি যখন এটি আবার অন্য দিকে নিয়ে যান তখন মিলবে না। বড় ফাইলগুলির জন্য আপনার ত্রুটির সম্ভাবনা বেড়েছে। এ কারণেই যখন আপনি এমন সাইটগুলি দেখেন যা আপনাকে .iso ফাইলগুলি ডাউনলোড করতে দেয় তবে আপনার ডাউনলোড করা ফাইলটি এটির সাথে মেলে কিনা এবং এটি দুর্নীতিগ্রস্থ নয় তা নিশ্চিত করার জন্য তাদের প্রায়শই একটি MD5 চেকসাম থাকে।
বার্ট সিলভারস্ট্রিম

3
scp এনক্রিপ্ট করা এবং লাইন উপর সততা গ্যারান্টি আছে। এখনও সামান্য সম্ভাবনা রয়েছে যে ডেটা মেমোরিতে বা অবশ্যই ডিস্কে দূষিত ছিল, তবে এটি খুব বিরল।
রায়ান বৈয়ার

1
এসএফটিপি চেকসামের ওভারহেডটি আসলে কোনও ব্যবহারিক অর্থে বিবেচনা করে? আমি এটা কল্পনা করতে পারি না। প্রতি 32768 এর জন্য 4 বাইট উল্লেখযোগ্য শোনায় না। এটি প্রতি জিবি 128 কেবি। এটিকে "ধীর" বলে মনে হচ্ছে এক বিরক্তিকর তাত্ত্বিক ধারণা ব্যতীত অন্য কোনও কিছুর উপরে ওভারস্টেটমেন্টের মতো।
আন্ডারস্কোর_

8

পেসের এমডি 5সাম পরামর্শের উপরে, আমি নিম্নলিখিতটি ব্যবহার করব:

গন্তব্যস্থলে: nc -w5 -l -p 4567 | tar -xvf -

তারপরে উত্স: tar -cvf - /path/to/source/ | nc -w5 destinationserver 4567

এটি এখনও একটি টার / আনতার, এবং কোনও এনক্রিপশন নেই, তবে এটি অন্য সার্ভারে সরাসরি। এগুলি উভয়কেই শুরু করুন ( -w5আপনাকে 5 সেকেন্ডের অনুগ্রহ দেয়)) এবং এটি দেখুন। ব্যান্ডউইথ যদি শক্ত হয় তবে উভয় প্রান্তের টারে -z যুক্ত করুন।


1
আমি মনে করি এটি প্রথমে অন্য পথে তাকে গন্তব্য (সকেট খোলার জন্য) চালাতে হবে এবং তারপরে উত্সে (প্রেরণে)
দিমিত্রিওস মিস্ট্রিওটিস

গন্তব্য সার্ভারের জায়গায়, আমি কি কেবল root@1.1.1.1 রেখেছি?
অ্যান্ড্রু ফ্যাশন 16

না, শুধু আইপি নেটকাট টিসিপি ব্যতীত অন্য কোনও প্রোটোকল ব্যবহার করছে না :) এই কমান্ডটি উপরে বর্ণিত সমস্ত কমান্ডগুলির মধ্যে দ্রুততমও হবে। উত্সটিতে ফাইলের প্রতি ঠিক একটি পঠন রয়েছে, ফাইলগুলি স্থানান্তর করার জন্য সঠিক ন্যূনতম নেটওয়ার্ক ট্র্যাফিক এবং গন্তব্যস্থলে প্রতি ফাইলের জন্য ঠিক একটি লিখন। আপনার যদি অতিরিক্ত সিপিইউ চক্র থাকে, -z পতাকা যুক্ত করা (সংক্ষেপণের জন্য) এটি আরও ত্বরান্বিত করবে, কারণ কম নেটওয়ার্কের ডেটা স্থানান্তর করতে হবে।
জেফ ম্যাকজঙ্কিন 17

@ ইউজার 36845 - সত্য। আমি উপরের ক্রমটির সাথে একটি কালানুক্রমিক শব্দটি বোঝাচ্ছি না, তবে আপনি ঠিক বলেছেন, সকেটটি প্রথমে খোলার প্রয়োজন হবে। আমি এটিকে সম্পাদনা করব স্পষ্ট করে বলার জন্য। :)
স্মলক্ল্যাঞ্জার

আমি এসএসএস / এসসিপি কেন ১৩৫ এমবি / এস থেকে ১৩৩ এমবি / এস এ কেপ করছিলাম তা সম্পর্কে আমি নিশ্চিত নই, তবে নেটক্যাট সেই ডেটা সহজেই 80 380MB / s তে পাইপ করতে পারে (একই লিঙ্ক)
থারস্ম্মোনার

1

একটি বিন্দু - সমস্ত হোস্টের আরএসসিএন নেই এবং হোস্টের ভাল মানের বিভিন্ন সংস্করণ থাকতে পারে। এই কারণে, কেউ অবহেলিত সিপিও ব্যবহার করে কলের প্রথম বন্দর হিসাবে প্রস্তাব দিতে পারে।

আপনি হোস্টের মধ্যে ফাইল / ডিরেক্টরি কাঠামোর অ্যাড-হক প্রতিলিপি করতে ssh ওভার সিপিও করতে পারেন। আপনাকে "ফিড" সিপিও, নাম-মনোনীত করার প্রয়োজনে যা পাঠানো হচ্ছে তার উপরে আপনার নিয়ন্ত্রণ রয়েছে। এটি আরও যুক্তিযুক্ত-বহনযোগ্য, সিপিও খুব বেশি পরিবর্তন করে না - যদি আপনি ভিন্ন ভিন্ন পরিবেশে একাধিক হোস্টকে দেখছেন তবে এটি একটি গুরুত্বপূর্ণ বিষয়।

রিমোট হোস্টে অনুলিপি / রফতানি / বাড়ি এবং সাবডিয়ারগুলির উদাহরণ:

cd /export/ find . home -print | cpio -oaV | ssh 10.10.10.10 'cd /export/home; cpio -imVd'

উপরেরগুলি / রফতানি / হোম এবং যে কোনও সাবডিয়ারকে / রফতানি / বাড়িতে রিমোট হোস্টে অনুলিপি করবে।

আশাকরি এটা সাহায্য করবে.


তিনি উল্লেখ করেছিলেন যে এটি দুটি সেন্টোস বাক্স ছিল, সুতরাং তারা আরএসসিএনসি এবং টারের সামঞ্জস্যপূর্ণ সংস্করণ ফাইল করবে। সিপিও :) এর মতো সরঞ্জামগুলি প্রতিস্থাপনের জন্য আরএসসিএন এর মতো সরঞ্জাম তৈরি করা হয়েছিল। কমপক্ষে আপনি কোথা থেকে শুরু করতে চান এবং যথাযথ হিসাবে আপনার ফিল্টারটি ফিল্টার করতে চান তা না জানিয়ে আপনি সিপিও দিয়ে "পুনঃসূচনা" করতে পারবেন না। যা ওভারহেডের একটি অপ্রয়োজনীয় সময়। যা বলেছিলেন, 'পুরানো' ইউনিক্স বাক্সগুলির জন্য দরকারী তথ্য :)
রফিক মণিয়ার

হ্যাঁ, সেমিমেড আমাকে হাহা করেছে
এন্ড্রু ফ্যাশন

1

আমি আপনার ssh অ্যাক্সেস আছে, আপনি rsync অ্যাক্সেস আছে।

rsync -av -e ssh /storage/images/ user@[ip or domain name]:/storage/images/

অথবা

rsync -av -e "ssh -l user" /storage/images/ [ip or domain name]:/storage/images/

আপনি যদি "আরএসআইএনসি ত্রুটির মতো কোনও ত্রুটি পেয়ে থাকেন: কিছু ফাইলগুলি প্রধান কোডে (কোড 23) স্থানান্তরিত হতে পারে না (977) [প্রেরক = 2.6.9]", সার্ভারের মধ্যে আপনার ব্যবহারকারী এবং গোষ্ঠীগুলি পরীক্ষা করুন; আপনার কোনও মিল নেই।

আপনি যদি ট্রান্সফারটি সংকুচিত করতে চান তবে rsync "-z" বিকল্পটি ব্যবহার করুন। এই বিকল্পটি আরও বেশি সিপিইউ ব্যবহার করবে তবে ব্যান্ডউইথ কম, সুতরাং এটি সম্পর্কে সচেতন হন।

একটি "--pogress" বিকল্প রয়েছে যা আপনাকে শতাংশ স্থানান্তরিত করবে যা আপনি যদি এই ধরণের জিনিস পছন্দ করেন তবে তা দুর্দান্ত।


0

ফাইল স্থানান্তর করার জন্য তারা কি ইন্টারনেটের পরিবর্তে একটি ভাগ করা নেটওয়ার্কে রয়েছে? এনসিএফ বা এফটিপি এসসিপির ওভারহেডের চেয়ে অনেক দ্রুত হতে পারে, যদিও আপনি স্থানান্তরকালে এনক্রিপশনটি হারাবেন।


দূরবর্তী অবস্থানের বিভিন্ন সার্ভার
এন্ড্রু ফ্যাশন 16

0

অথবা আপনি সর্বদা টার পাইপ ব্যবহার করতে পারেন:

(cd /path && tar -cjf - * ) | ssh user@host 'tar -xjf - -C /path'

'j' = bzip2, আপনি যদি জিআরপি বা --lzma এর জন্য সমর্থন করতে পারেন তবে 'z' ব্যবহার করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.