আসল স্থানান্তরটি পরবর্তী সময়ে গতি বাড়ানোর জন্য rsync - ড্রাই চালানো আউটপুট পুনরায় ব্যবহার করুন


23

আমি সাধারণত rsync -nএকটি বাস্তব করার আগে করি rsync। বিষয়টি হ'ল, দ্বিতীয়টি রানটি তৈরি করা তালিকাটির পুনরায় ব্যবহার করতে আমি কীভাবে স্বয়ংক্রিয় করতে পারি --dry-run?

মানে আমি যদি চালাই rsync -nতবে আমি কী করব rsyncতার একটি অনুকরণ পাই, আমার ধারণাটি হবে যে আউটপুটটি গ্রহণ করা হবে, এটি প্রক্রিয়া করা হবে তবে কোনওভাবে rsyncকেবলমাত্র --include-fromসেই আউটপুট তৈরি করা হবে, সুতরাং সম্পূর্ণ তালিকাটি একবারেই গণনা করতে হবে।

যদি এটি এমনকি অর্থবোধ করে না, দয়া করে আমাকে জানান।

যাইহোক, আমি ব্যবহার ঝোঁক rsync -hva --progress --stats --delete --exclude-from "$EXCLUDEFILE"। আপনি কোন বিকল্পগুলি ব্যবহার করবেন সে সম্পর্কে আপনার যদি কোনও পরামর্শ থাকে তবে দয়া করে আমাকে জানান। আমি একটি বাহ্যিক হার্ড ড্রাইভের সামগ্রীগুলি (যেটিতে কেবল চিত্র, ভিডিও এবং ডকুমেন্ট রয়েছে) অন্য একটি বাহ্যিক হার্ড ড্রাইভে নকল করার চেষ্টা করছি।


আপনি --dry-runকমান্ড থেকে আউটপুটটিকে কোনও ফাইলে পুনঃনির্দেশিত করতে চেষ্টা করতে পারেন (উদাঃ rsync --dry-run -avz SOURCE DEST > include.txt), ফাইল / পাথ নয় এমন সমস্ত লাইন অন্তর্ভুক্ত করে rsync --include-from include.txt
ThatGuy

শেষ আদেশটি হওয়া উচিত rsync --include-from include.txt --exclude=* SOURCE DEST। বিশদ জানতে stackoverflow.com/a/19296415/1765910 দেখুন ।
ThatGuy

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

উত্তর:


18

শুকনো রান চলাকালীন উত্পন্ন ফাইল তালিকাটি অন্তর্ভুক্ত ফাইল হিসাবে ব্যবহার করা অবশ্যই সম্ভব। আদর্শভাবে, তবে, ড্রাই-রান আউটপুটটির উপরে এবং নীচে অতিরিক্ত লাইনগুলি মুছে ফেলা উচিত।

উদাহরণ আউটপুট:

sending incremental file list
[LIST OF FILES]

sent 226 bytes  received 34 bytes  520.00 bytes/sec
total size is 648,373,274  speedup is 2,493,743.36 (DRY RUN)

এই লাইনগুলি সরাতে, rsyncআউটপুটটি ভিতরে headএবং ভিতরে পাইপ করুন tail। তারপরে, একটি অন্তর্ভুক্ত করা ফাইলটিতে প্রক্রিয়াজাত আউটপুট সংরক্ষণ করুন:

rsync --dry-run -avz source/ destination/ | head --lines=-3 | tail --lines=+3 > include.txt

পরিশেষে, rsyncউত্পন্ন অন্তর্ভুক্ত ফাইলটি ব্যবহার করতে বলুন (পছন্দমতো অতিরিক্ত বিকল্প যুক্ত করা):

rsync --include-from=include.txt --exclude=* source/ dest/


এটির সাথে সমস্যাটি হ'ল এটি মুছে ফেলা উচিত এমন ফাইলগুলির সাথে মান দেয় না। এবং সেই শক্তির tail/ headশক্তির সেই পদ্ধতিটি কি কেবলমাত্র ফাইলের তালিকা থাকা নিশ্চিত করে?
ম্যানুয়েল

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