লক্ষ লক্ষ ফাইল এক সার্ভার থেকে অন্য সার্ভারে স্থানান্তর করা


15

আমার দুটি সার্ভার রয়েছে। এর মধ্যে একটিতে 15 মিলিয়ন পাঠ্য ফাইল রয়েছে (প্রায় 40 গিগাবাইট)। আমি তাদের অন্য সার্ভারে স্থানান্তর করার চেষ্টা করছি। আমি সেগুলি জিপ করা এবং সংরক্ষণাগার স্থানান্তর করার বিষয়টি বিবেচনা করেছি, কিন্তু আমি বুঝতে পেরেছি যে এটি কোনও ভাল ধারণা নয়।

সুতরাং আমি নিম্নলিখিত কমান্ডটি ব্যবহার করেছি:

scp -r usrname@ip-address:/var/www/html/txt /var/www/html/txt

তবে আমি লক্ষ্য করেছি যে এই কমান্ডটি প্রায় 50,000 ফাইল স্থানান্তর করে এবং তারপরে সংযোগটি হারিয়ে যায়।

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

এটি দিয়ে সম্ভব নয় scp, কারণ এটি সর্বদা প্রথম ফাইল থেকে শুরু হয়।

উত্তর:


33

যেমনটি আপনি বলেছেন, ব্যবহার করুন rsync:

rsync -azP /var/www/html/txt/ username@ip-address:/var/www/html/txt

বিকল্পগুলি হ'ল:

-a : enables archive mode, which preserves symbolic links and works recursively
-z : compress the data transfer to minimise network usage
-P : to display a progress bar and enables you to resume partial transfers

যেমন @ উত্তর তার উত্তরে বলেছে, /উত্স ডিরেক্টরিতে আপনার পিছনে রয়েছে তা নিশ্চিত করুন (উভয়টির পক্ষেও বেশ ভাল)।

ম্যান পৃষ্ঠা থেকে আরও তথ্য


1
আমি -hমানব-পঠনযোগ্য ইউনিটগুলি ব্যবহার করতে পতাকা যুক্ত করার পরামর্শ দিই । এবং যদি আপনি আরও ভার্বোসিটি চান, আপনার কয়েকটি বিকল্প রয়েছে: -iএবং / অথবা -v/ -vv
nyuszika7h

2
সর্বদা scp এর পরিবর্তে rsync ব্যবহার না করার খুব কম কারণ রয়েছে। এর বেসিক ব্যবহার একই এবং এটি অনেকগুলি অতিরিক্ত সুবিধাজনক বৈশিষ্ট্য সরবরাহ করে।
পিমলটক

যদি আপনার sshজন্য কোনও বিকল্প না হয় এবং আপনার এনক্রিপশন প্রয়োজন না হয় বা চান না তবে আপনি আমার স্ক্রিপ্টটি s3.amazonaws.com/skaperen/rsend
স্কেপেরেন

7

এসএসএসের উপরে কেবল আরএসএনসি ব্যবহার করুন!

rsync -av username@ip:/var/www/html/txt /var/www/html/

ম্যান পৃষ্ঠা থেকে:

-a , - সংরক্ষণাগার : এটি -rlptgoD এর সমতুল্য। এটি বলার দ্রুত উপায় যা আপনি পুনরাবৃত্তি চান এবং প্রায় সমস্ত কিছু সংরক্ষণ করতে চান (যার সাথে -H উল্লেখযোগ্য বাদ পড়ে)। উপরের সমতুল্যের একমাত্র ব্যতিক্রম হ'ল - - ফাইলস-থেকে নির্দিষ্ট করা হয়, যার ক্ষেত্রে -আর অন্তর্ভুক্ত থাকে না।

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

ফোল্ডারগুলির শেষে আমি কীভাবে স্ল্যাশ ব্যবহার করেছি তা নোট করুন - এটি গুরুত্বপূর্ণ


পিছনের স্ল্যাশের তাৎপর্য সম্পর্কে আপনার সম্ভবত আরও তথ্য যুক্ত করা উচিত। থেকে rsyncম্যানুয়াল পৃষ্ঠা: "সোর্স ওপর trailing স্ল্যাশ এই আচরণ পরিবর্তন গন্তব্যে একটি অতিরিক্ত ডিরেক্টরির স্তর তৈরি এড়াতে আপনি নামের অর্থ যেমন একটি উৎস চালু / একটি trailing মনে করতে পারেন।" এই ডিরেক্টরির "হিসাবে বিরোধিতা" বিষয়বস্তু কপি নামটি দিয়ে ডিরেক্টরিটি অনুলিপি করুন ", তবে উভয় ক্ষেত্রেই থাকা ডিরেক্টরিটির বৈশিষ্ট্যগুলি গন্তব্যস্থলে থাকা ডিরেক্টরিতে স্থানান্তরিত হয় are"
nyuszika7h

... এবং পতাকাগুলির অর্থ -av?
মিঃ হোয়েট

0

Lftp ব্যবহার করুন, এটি আরএসইএনসি-র চেয়ে অনেক দ্রুত এবং ওয়েবসাইটের মিরর করার জন্য সেরা (অনেকগুলি ছোট ফাইল)। এটি একাধিক সংযোগ ব্যবহার করে সমান্তরালে স্থানান্তর করতে পারে:

lftp -u username,password sftp://ip-address -e 'mirror --only-newer --no-dereference --parallel=5 /remote/path/ /destination/;quit'

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

http://lftp.yar.ru/


0

অন্য উপায়টি হ'ল এসএসএসের মাধ্যমে একটি (বিকল্পভাবে সংক্ষেপিত) ট্যারি ফাইলটি পাইপ করা:

tar -czf - ./* | ssh other.host.foo "cd /tmp; tar -xzf-"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.