প্রশ্ন Rsync মধ্যে মোট অগ্রগতি দেখাচ্ছে: এটা সম্ভব?


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

এটা দেখা সম্ভব মোট ফাইল স্থানান্তর অগ্রগতি rsync সঙ্গে?


195
2018-01-05 15:26


উত্স


Rsync 3.1.0 থেকে এখন একটি মৌলিক মোট ফাইল স্থানান্তর অগ্রগতি অন্তর্ভুক্ত রয়েছে। উত্তর দেখুন serverfault.com/a/441724/107793 বিস্তারিত জানার জন্য. - Florian Feldhaus
গ্রহণযোগ্য উত্তর পরিবর্তন করুন। @ ডেভিড এর উত্তর সম্পূর্ণ নিরর্থক। - Navin


উত্তর:


ডানাকিম সঠিক। মোট অগ্রগতি সূচক যোগ করার জন্য কোন তুচ্ছ উপায় নেই।

এর কারণ হল যে যখন rsync সিঙ্ক করার জন্য ফাইলগুলির একটি তালিকা দেখায়, তখন এটি কোনও ফাইলকে পরিবর্তন করতে হবে তা সময়ের আগে জানা যায় না। আপনি যদি ডেল্টা ট্রান্সফার করছেন তবে delta নিজেকে নিজের কাজের পুরো ছবি দেওয়ার জন্য সময়ের আগে গণনা করতে হবে।

অন্য কথায়, কাজ করার কতটা কাজ আছে তা গণনা করার সবচেয়ে সহজ উপায় আসলে এটি করা।


33
2018-01-06 04:10



আপনি এখনও একটি সহজ নির্দেশক (তথ্য স্থানান্তরিত + তথ্য বাদ) / (সোর্স মোট তথ্য), অথবা (# ফাইল স্থানান্তরিত বা বাদ দেওয়া) / (সোর্স # ফাইল) থাকতে পারে। এটা বিশেষ করে সঠিক হতে যাচ্ছে না, কিন্তু এটি একটি ধারণা দিতে চাই। আপনি দিনের শেষে একটি বড় স্থানান্তর করছেন যখন ভাল, এবং আপনি আশেপাশে অপেক্ষা করতে হবে এবং কম্পিউটার বন্ধ, বা এটি রাতে চালানোর জন্য বিস্মিত হয় ... - naught101
আমি বিশ্বাস করি যে উপসংহার সঠিক নয়। আমি মনে করি @ নট10101 এই প্রশ্নটির জন্য আরো ন্যায্য হচ্ছে, এবং আমি মনে করি ব্যবহার না করে একটি উত্তর পূর্বাভাস দিচ্ছি --size-onlyবা মত আরো ভুল। - Evan Carroll
যখন আমি উত্তরটি লিখেছিলাম, তখন এটি সঠিক ছিল - rsync এর মোট অগ্রগতি সূচকটির জন্য একটি প্রক্রিয়া ছিল না। এবং হ্যাঁ, আপনি আপনার নিজের লিখতে পারে, কিন্তু খুব কম মানুষ হবে। - David Mackintosh
নতুনদের জন্য মন্তব্য: এটি এখন সম্ভব: serverfault.com/a/441724/422003 - imposeren


Rsync এ এটি করার একটি সরকারী উপায় রয়েছে (সংস্করণ 3.1.0 প্রোটোকল সংস্করণ 31, উবুন্টু ট্রাস্টি 14.04 এর সাথে পরীক্ষা করা হয়েছে)।

#> ./rsync -a --info=progress2 /usr .
    305,002,533  80%   65.69MB/s    0:00:01  xfr#1653, ir-chk=1593/3594)

আমি আমার সাথে চেষ্টা /usr ফোল্ডার কারণ আমি এই ফাইলটি সম্পূর্ণ ফাইল সিস্টেমগুলি ট্রান্সফার করার জন্য চেয়েছিলেন, এবং /usr একটি ভাল প্রতিনিধি নমুনা হতে লাগলো।

দ্য --info=progress2 এটি একটি আংশিক মান এমনকি যদি, একটি চমৎকার সামগ্রিক শতাংশ দেয়। আসলে, আমার /usr ফোল্ডার 6 গিগাবাইট বেশী:

#> du -sh /usr
6,6G    /usr/

এবং rsync এটা সব স্ক্যান করার সময় অনেক সময় নেন। তাই প্রায় যে সময় আমি দেখেছি তার প্রায় 90% সম্পন্ন হয়েছে, তবে তা কিছুটা কপি করার জন্য এটি সান্ত্বনাদায়ক :)

তথ্যসূত্র:


313
2017-10-24 11:13



মনে রাখবেন যে এটি 3.1.0 এ অবতরণ করেছে। এটি লক্ষ্য রাখা গুরুত্বপূর্ণ যে সময় দৃষ্টিকোণে এটি অগত্যা সঠিক নয়। এটি মূলত দূরবর্তী প্রান্তে বিদ্যমান তথ্যের পরিমাণ দেখানো হয়েছে। এবং হার সেই হার যা দূরবর্তী প্রান্তে ডেটা সঠিক হতে শিখেছে (এটি ইতিমধ্যেই সেটি ছিল নাকি নতুন তথ্য স্থানান্তর করা হয়েছিল এবং এটি সঠিক করা হয়েছিল)। তাই খুব দরকারী যদিও আপনি caveats বুঝতে হবে। - Kevin Cox
হোমব্রিউয়ের সাথে OSX এ এটি ব্যবহার করতে, "হোমব্রেই / টুপি টিপুন; ব্রু ইনস্টল করুন rsync" - Matt Carrier
যে নোট মূল্য --info=progress2 সঙ্গে কাজ করে না -v - sanmai
যুক্ত করুন --no-i-r Aswell সুইচ, তাই rsync অনুলিপি স্ক্যান না কিন্তু সম্পূর্ণ অনুলিপি আগে এবং জানেন + কাজ কত বাকি আছে প্রদর্শন করে। - Alex
আপনি ব্যবহার করতে পারেন যে নোট --human-readable (অথবা -h) এমবি / জিবি মোট আকার দেখতে .. অগ্রগতি। - Nux


আপনি 'পিভি' দিয়ে করতে পারেন (apt-get install pv ডেবিয়ান এবং উবুন্টুর সাথে)। আমি স্থানান্তরিত ফাইলের সংখ্যা নিরীক্ষণ করার সুপারিশ করি, যেহেতু স্থানান্তরিত তথ্য পরিমাণ ফাইলের আকারের সাথে সম্পর্কযুক্ত নয় তবে উৎস এবং গন্তব্যের মধ্যে ডেল্টাতে। এবং ফাইল গণনা এক বড় ডেল্টা এবং অন্য একটি ছোট ডেল্টা সঙ্গে একই অগ্রগতি গণনা করা হবে। যে কোন ক্ষেত্রে যে ইটিএ অনুমান দূরে হতে পারে মানে। আকার ভিত্তিক ইটিএ শুধুমাত্র আপনার গন্তব্য খালি থাকলে কাজ করে, এই ক্ষেত্রে ডেল্টা == আকারের আকার।

সাধারণ ধারণাটি rsync থেকে 'স্থানান্তরিত' ফাইল প্রতি এক লাইন নির্মূল করা এবং 'pv' সহ সেই লাইন গণনা করা হয়:

rsync -ai / উত্স দূরবর্তী: / dest | pv -les [ফাইলের সংখ্যা]> / dev / null

আমি ব্যাকআপ পুরো ফাইল সিস্টেমগুলি (বিভিন্ন কারণে), এই ক্ষেত্রে আপনি অনেক সস্তা ব্যবহার করতে পারেন df ফাইল সংখ্যা পেতে (পরিবর্তে du অথবা find rsync এটি পরে অন্য সময় আপনার উত্স অনুক্রমের ট্র্যাক করবে)। -X বিকল্পটি নিশ্চিত হয় যে rsync একই উৎস ফাইল সিস্টেমে থাকে (এবং অন্যান্য অভ্যন্তরীণ মাউন্টগুলি অনুসরণ করে না):

rsync -aix / উত্স দূরবর্তী: / dest | pv -les $ (df -i / source | perl -ane 'মুদ্রণ $ F [2] যদি $ F [5] = ~ m: ^ /:')> / dev / null

আপনি সাধারণ ভাবে ফাইল / সোর্স গণনা করতে চান, ব্যবহার করুন find /source|wc -l (আবার সতর্কতা: আমি / হে ধীর এবং ভারী হতে পারে)।


42
2018-06-10 10:22



Zerodeuz উল্লেখ হিসাবে, শুধুমাত্র "df" ব্যবহার করুন যখন আপনি সম্পূর্ণ পার্টিশনকে পুনরায় কনসেস করছেন df -i /source সমস্ত বিভাজন থেকে ইনডোড (ফাইল) সংখ্যা পায় যেখানে / উত্স থাকে। অন্যথায় ব্যবহার করুন একটি ডিরেক্টরি ভিতরে ফাইল গণনা 'খুঁজে' ভিতরে "$ ()" অভিব্যক্তি। - lepe
একটি বিকল্প du অথবা find - বলুন আপনি একটি অসম্পূর্ণ অনুলিপি শেষ করছেন বা মুছে ফেলার সাথে একটি ইন-স্থান আপডেট করছেন - ব্যবহার করতে হয় rsync -ai --dry-run একই ফাইল তালিকা পেতে প্রধান রান পাস করা হবে pv - Izkata


দীর্ঘ স্থানান্তর জন্য, আমি চলমান সঙ্গে খুশি du -s উভয় পক্ষের. এমন কি watch -n1 du -s, আমি সত্যিই উদ্বিগ্ন বোধ করি।

watch একটি কমান্ড executes (du -s এখানে) পর্যায়ক্রমে (প্রতি 1 সেকেন্ড এখানে) এবং আউটপুট পূর্ণস্ক্রীন দেখায়।


28
2018-01-05 16:30



উদাহরণের জন্য ধন্যবাদ watch কমান্ড! - Cam
//, চতুর! Linfo.org এর মতে: "du (অর্থাত্, ডিস্ক ব্যবহার) কমান্ডটি তাদের সমস্ত সামগ্রী এবং পৃথক ফাইলের মাপ সহ ডিরেক্টরি গাছের মাপের প্রতিবেদন করে। এটি স্থান হগস, অর্থাত্ ডিরেক্টরি এবং ফাইলগুলি ট্র্যাক করার জন্য এটি কার্যকর করে তোলে যে হার্ড ডিস্ক ড্রাইভ (এইচডিডি) বা অন্যান্য স্টোরেজ মিডিয়াতে বড় বা অত্যধিক পরিমাণে স্থান ব্যবহার করে। " - Nathan Basanese
আমি জানি না কোন ধরনের দীর্ঘ স্থানান্তর আপনি করেন, যেখানে du কার্যকরী হয়। ফলাফলটি টিবি এবং ফাইলগুলির এম হতে গেলে নূর হিসাবে ধীর গতির হয়। - Nobody
আমার "দীর্ঘ স্থানান্তর" এর জন্য একটি du অপারেশনটি সম্পন্ন করার জন্য প্রায় এক ঘন্টা সময় লাগে, যার সময় rsync অনেক ধীর চলছে, কারণ তারা ডিস্কের অ্যাক্সেসের উপর যুদ্ধ করছে। - Abhi Beckert


সাথে --info = progress2 আপনি এটিও করতে পারেন ক্রমবর্ধমান recursion নিষ্ক্রিয় করুন। এটি শুরুতে সম্পূর্ণ ফাইল তালিকা তৈরি করবে এবং এভাবে আপনাকে সামগ্রিক অগ্রগতির একটি ভাল ধারণা দেবে (অন্তত ফাইলগুলির সংখ্যা, আমি মনে করি না এটি ফাইলের আকার স্ক্যান করে)। একটি বাণিজ্য বন্ধ আছে। এটি আরও মেমরি-ব্যয়বহুল, এবং প্রকৃত স্থানান্তর শুরুতে বিলম্ব করে। সম্ভবত সেরা ধীর-লিঙ্ক সংযোগ ব্যবহৃত, এবং ফাইল gajillions জন্য অবশ্যই মহান না।

নিম্নলিখিত জন্য বিস্তারিত অধীনে rsync মানুষের পাতা থেকে -আর - reciursive

ক্রমবর্ধমান recursion ব্যবহার করে নিষ্ক্রিয় করা যেতে পারে --no-Inc-রিকার্সিভ বিকল্প বা তার সংক্ষিপ্ত --no-ই-দ ওরফে।

(সূত্র: http://rsync.samba.org/ftp/rsync/rsync.html )

এছাড়াও, যদি আপনি --delete- এর আগে শুরুতে পুরো পুনরাবৃত্তিটি জোরদার করবেন, এটি অনাথ ফাইলগুলি মুছে ফেলার জন্য যা প্রয়োজন (ফাইলগুলিতে উপস্থিত থাকা ফাইলগুলি, তবে উৎসের মধ্যে নেই)।


20
2017-10-16 19:56



এই জন্য ধন্যবাদ, অন্যান্য উত্তরগুলির ফলে% বয়স চলছে যা উপরে ও নিচে চলতে থাকে! - artfulrobot


মূলত না। আপনি শুধুমাত্র অগ্রগতি ফ্ল্যাগের সাথে প্রতি-প্রগতি প্রদর্শন করতে পারেন, তবে এটিই এটি সম্পর্কে।

আমি অনুমান করছি যে আপনি এটির চারপাশে একটি মোড়ক লিখতে পারেন বা আপনি যে প্যাচগুলি খুঁজে পেয়েছেন তা ব্যবহার করতে পারেন তবে আপনাকে অবশ্যই নিজেকে জিজ্ঞাসা করতে হবে যে এটি সত্যিই মূল্যবান কিনা, আপনি কি আসলেই rsync এর জন্য মোট অগ্রগতি প্রয়োজন?


11
2018-01-05 15:50



এখানে একটি রপার স্ক্রিপ্ট যা একটি মোট অগ্রগতি বার হিসাবে মোট অগ্রগতি এবং ফাইল অগ্রগতি দেখায়: gist.github.com/JohannesBuchner/4d61eb5a42aeaad6ce90 - j13r
আপনি উপায় পরিবর্তন করতে পারেন --progress ব্যবহার করে কাজ --info=progress2, এটি আপনাকে বিশ্বব্যাপী অগ্রগতি প্রদর্শন করবে। এটি কার্যকর হওয়ার জন্য আপনাকে ক্রমবর্ধমান পুনর্মিলনী অ্যালগরিদমটি অক্ষম করতে হবে --info=progress2 --no-inc-recursive - mat
@ জে 13 আর আপনি এই উত্তরটিও উত্তর হিসাবে ভাগ করতে পারেন! তার মহান বিকল্প! - skywinder


আমি rsync এর সাথে মোট অগ্রগতি দেখানোর জন্য অনুসন্ধান করেছি এবং আমি এই পোস্ট থেকে একটি কার্যকর উত্তরদাতা খুঁজে পেয়েছি: https://stackoverflow.com/questions/7157973/monitoring-rsync-progress

মূলত, আপনি ব্যবহার করতে পারেন --info = progress2 rsync এর dev সংস্করণে 3.1.0। এখানে কি হয় ডক বলেছেন:

একটি --info = progress2 বিকল্প রয়েছে যা ব্যক্তিগত ফাইলগুলির পরিবর্তে সমগ্র স্থানান্তরের উপর ভিত্তি করে পরিসংখ্যান আউটপুট করে। ফাইল নামটি আউটপুট না করেই এই পতাকাটি ব্যবহার করুন (যেমন- -v বা নির্দিষ্ট করুন --info = name0 যদি আপনি দেখতে চান যে কতগুলি নাম দিয়ে পর্দা স্ক্রোল না করে স্থানান্তর কীভাবে হয়। (আপনাকে নির্দিষ্ট করার প্রয়োজন নেই - অগ্রগতি বিকল্পটি ব্যবহার করতে --info = progress2।)


7
2017-07-04 14:30



--info=name0 সোনা - ipatch