dd
একটি আশ্চর্য. এটি আপনাকে একটি হার্ড ড্রাইভকে অন্যটিতে নকল করতে দেয়, সম্পূর্ণ হার্ড ড্রাইভকে শূন্য করে দেয় ইত্যাদি কিন্তু একবার আপনি একটি আরম্ভ dd
কমান্ড, তার অগ্রগতি আপনাকে বলতে কিছুই নেই. কমান্ড অবশেষে শেষ না হওয়া পর্যন্ত এটা ঠিক কার্সার এ অস্ত. তাহলে কীভাবে একজন ডিডি এর অগ্রগতি পর্যবেক্ষণ করে?
আপডেট 2016>: আপনি যদি জিএনইউ কোরিউটিল ব্যবহার করেন = 8.24 (উবুন্টু জেনিয়াল 16.04 উপরের দিকে ডিফল্ট), অগ্রগতি প্রদর্শনের বিকল্প উপায়ের জন্য নীচের পদ্ধতি 2 দেখুন
পদ্ধতি 1: ব্যবহার করে pv
ইনস্টল করুন pv
এবং শুধুমাত্র ইনপুট / আউটপুট মধ্যে এটি করা dd
কমান্ড.
নোট: আপনি ইতিমধ্যে শুরু করার পরে এটি ব্যবহার করতে পারবেন না dd
.
থেকে প্যাকেজ বর্ণনা:
pv
- পাইপ ভিউয়ার-একটি পাইপলাইন মাধ্যমে তথ্য অগ্রগতি পর্যবেক্ষণ জন্য একটি টার্মিনাল ভিত্তিক টুল. এটা কিভাবে এটা সমাপ্তির কাছাকাছি, গ্রহণ করেছে কতদিন তথ্য মাধ্যমে ক্ষণস্থায়ী হয় কিভাবে দ্রুত একটি চাক্ষুষ ইঙ্গিত দিতে দুই প্রক্রিয়ার মধ্যে কোনো স্বাভাবিক পাইপলাইন ঢোকানো, এবং এটি সমাপ্তির পর্যন্ত হতে হবে কতদিন একটি অনুমান করা যাবে.
ইনস্টলেশন
sudo apt-get install pv
উদাহরণ
dd if=/dev/urandom | pv | dd of=/dev/null
আউটপুট
1,74MB 0:00:09 [ 198kB/s] [ <=> ]
আপনি এর সাথে আনুমানিক আকার নির্দিষ্ট করতে পারেন --size
আপনি একটি সময় প্রাক্কলন চান.
উদাহরণ ধরে নেওয়া একটি 2 জিবি ডিস্ক /দেব/এসডিবি থেকে অনুলিপি করা হচ্ছে
কমান্ড ছাড়া pv
হবে:
sudo dd if=/dev/sdb of=DriveCopy1.dd bs=4096
সঙ্গে কমান্ড pv
:
sudo dd if=/dev/sdb | pv -s 2G | dd of=DriveCopy1.dd bs=4096
আউটপুট:
440MB 0:00:38 [11.6MB/s] [======> ] 21% ETA 0:02:19
অন্যান্য ব্যবহার
আপনি অবশ্যই ব্যবহার করতে পারেন pv
আউটপুট সরাসরি স্টিডআউটে পাইপ করতে:
pv /home/user/bigfile.iso | md5sum
আউটপুট
50,2MB 0:00:06 [8,66MB/s] [=======> ] 49% ETA 0:00:06
এই ক্ষেত্রে নোট করুন, pv
স্বয়ংক্রিয়ভাবে আকার স্বীকার করে.
পদ্ধতি 2: নতুন status
অপশন যোগ করা হয়েছে dd
(জিএনইউ কুরিউটিলস 8.24+)
dd
জিএনইউ কুরিউটিলগুলিতে 8.24 + (উবুন্টু 16.04 এবং আরও নতুন) একটি নতুন পেয়েছে status
অগ্রগতি প্রদর্শন করার অপশন:
উদাহরণ
dd if=/dev/urandom of=/dev/null status=progress
আউটপুট
462858752 bytes (463 MB, 441 MiB) copied, 38 s, 12,2 MB/s
থেকে হাওটো: ডিডি এর অগ্রগতি পর্যবেক্ষণ করুন
আপনি অগ্রগতি নিরীক্ষণ করতে পারেন dd
এটি ব্যবহার করে এটি বন্ধ না করে চলমান একবার kill
প্রক্রিয়া একটি সংকেত পাঠাতে কমান্ড.
আপনি শুরু করার পরে dd
, অন্য একটি টার্মিনাল খুলুন এবং প্রবেশ করুন হয়:
sudo kill -USR1 $(pgrep ^dd$)
অথবা, আপনি যদি বিএসডি বা ওএস এক্সে থাকেন:
sudo kill -INFO $(pgrep ^dd$)
এই অগ্রগতি প্রদর্শন করা হবে dd
প্রক্রিয়া বন্ধ না করে টার্মিনাল উইন্ডো(মুদ্রণ করে তার স্টডার স্ট্রিম). উদাহরণ স্বরূপ:
# dd if=/dev/urandom of=rando bs=1024 count=1048576335822+0 records in335821+0 records out343880704 bytes (344 MB, 328 MiB) copied, 6.85661 s, 50.2 MB/s
আপনি যদি নিয়মিত আপডেট পেতে চান dd
অগ্রগতি, তারপর লিখুন:
watch -n5 'sudo kill -USR1 $(pgrep ^dd$)'
watch
তদন্ত করবে dd
প্রতি সেকেন্ডে (-n5
= 5 সেকেন্ড) এবং রিপোর্ট এটা বন্ধ ছাড়া.
উপরের কমান্ড সঠিক একক কোট উল্লেখ্য.
সঙ্গে কয়েক সহজ নমুনা ব্যবহার pv
এবং কম টাইপিং বা আরও অগ্রগতি তারপর অন্যান্য উত্তর:
প্রথমে আপনাকে ইনস্টল করতে হবে pv
কমান্ড দিয়ে:
sudo apt-get install pv
তারপরে কয়েকটি উদাহরণ হ ' ল:
pv -n /dev/urandom | dd of=/dev/nullpv -tpreb source.iso | dd of=/dev/BLABLA bs=4096 conv=notrunc,noerror
দ্রষ্টব্য: প্রথম নমুনা 5 অক্ষর কম টাইপিং তারপর dd if=/dev/urandom | pv | dd of=/dev/null
.
এবং একটি ডিস্ক ড্রাইভ ক্লোন করার জন্য আমার প্রিয় (ড্রাইভ অক্ষর দিয়ে এক্স প্রতিস্থাপন করুন):
(pv -n /dev/sdX | dd of=/dev/sdX bs=128M conv=notrunc,noerror) 2>&1 | dialog --gauge "Running dd command (cloning), please wait..." 10 70 0
উৎস: http://www.cyberciti.biz/faq/linux-unix-dd-command-show-progress-while-coping/
নিজেকে ফাইল করার জন্য
সম্পূর্ণতার জন্য:
সংস্করণ 8.24 এর জিএনইউ অগ্রগতি প্রিন্ট করার জন্য একটি প্যারামিটার প্রবর্তন ডিডি জন্য একটি প্যাচ অন্তর্ভুক্ত.
কমিটি এই পরিবর্তনটি উপস্থাপন করার মন্তব্য রয়েছে:
ডিডি: নতুন স্থিতি = অগ্রগতি পর্যায়ক্রমে পরিসংখ্যান মুদ্রণের স্তর
অনেক বিতরণ, সহ উবুন্টু 16.04.2 এলটিএস এই সংস্করণ ব্যবহার করুন.
ব্যবহার করুন Ctrl+Shift+T যখন dd
চলমান, এবং এটি আউটপুট অগ্রগতি হবে (বাইটে):
load: 1.51 cmd: dd 31215 uninterruptible 0.28u 3.67s321121+0 records in321120+0 records out164413440 bytes transferred in 112.708791 secs (1458745 bytes/sec)
দেশীয় অগ্রগতির স্থিতি ডিডিতে যুক্ত করা হয়েছিল!!!
কোরিউটিলের নতুন সংস্করণ (8.24) একটি অগ্রগতির স্থিতি যুক্ত করে dd
টুল:
জুবুন্টু 15.10 এ ব্যবহার:
একটি টার্মিনাল খুলুন এবং এই কমান্ডগুলি টাইপ করুন:
wget ftp://ftp.gnu.org/pub/gnu/coreutils/coreutils-8.24.tar.xztar -xf coreutils-8.24.tar.xzcd coreutils-8.24./configure && make -j $(nproc)
চালান dd
রুট হিসাবে:
sudo sucd src./dd if=/dev/sdc of=/dev/sda conv=noerror status=progress
আপনি দেখতে পাবেন: বাইট, সেকেন্ড এবং গতি (বাইট/সেকেন্ড).
এর সংস্করণগুলি পরীক্ষা করতে dd
:
স্থানীয়:
dd --version
নতুন:
cd coreutils-8.24/src./dd --version
আপনি যদি ইতিমধ্যে ডিডি শুরু করে থাকেন এবং আপনি যদি কোনও ফাইল লিখছেন যেমন ডিস্কে পেনড্রাইভের অনুলিপি তৈরি করার সময়, পরিবর্তনগুলি দেখতে এবং সমাপ্তির অনুমান করতে আউটপুট ফাইলের আকারটি ক্রমাগত পর্যবেক্ষণ করতে আপনি ওয়াচ কমান্ডটি ব্যবহার করতে পারেন
watch ls -l /pathtofile/filename
শুধুমাত্র ফাইলের আকার দেখতে (এইচ-হিউম্যান ভিউ):
watch ls -sh /pathtofile/filename
দ্য dd | pv | dd
ত্রিয়াদ আমার তৈরি 50 গিগাবাইট ভিএম কপি নিতে 800 সেকেন্ড, উল্টোদিকে 260 শুধু ডিডি ব্যবহার সেকেন্ড. এই পাইপলাইনের সাথে, অন্তত, পিভি কোন ধারণা নেই যে ইনপুট ফাইলটি কত বড় তাই এটি আপনাকে বলতে পারবে না যে আপনি কতটা দূরে আছেন তাই নিম্নরূপ এটি করার কোন অসুবিধা নেই-এবং আপনি একটি চমৎকার গতি সুবিধা পান:
আমি বড় কিছু পিভি এড়াতে হবে, এবং (ব্যাশ ব্যবহার করা হলে):
নিয়ন্ত্রণ-জেড ডিডি প্রক্রিয়া
bg
পটভূমিতে এটি করা. যে পর্যবেক্ষণ bg
আপনি মত আউটপুট দিতে হবে [1] 6011
যেখানে পরের সংখ্যাটি একটি প্রক্রিয়া আইডি. সুতরাং, না:
while true; do kill -USR1 process_id ; sleep 5; done
কোথায় প্রসেস_আইডি প্রক্রিয়া আইডি আপনি পালন করা হয়. হিট কন্ট্রোল-সি যখন আপনি ভালো কিছু দেখতে:
[1]+ Done dd if=/path/file.qcow2 of=/dev/kvm/pxetest bs=4194304 conv=sparse-bash: kill: (60111) - No such process
তোমার কাজ শেষ.
সম্পাদনা করুন: মূর্খ সিস্টেম প্রশাসক! আপনার জীবন স্বয়ংক্রিয় করুন, কাজ করবেন না! যদি আমার একটি দীর্ঘ ডিডি প্রক্রিয়া থাকে যা আমি পর্যবেক্ষণ করতে চাই, এখানে একটি এক-লাইনার যা আপনার জন্য পুরো এনচিলাদের যত্ন নেবে; এই সব এক লাইনে রাখুন:
dd if=/path/to/bigimage of=/path/to/newimage conv=sparse bs=262144 & bgid=$!; while true; do sleep 1; kill -USR1 $bgid || break; sleep 4; done
আপনি, অবশ্যই, স্ক্রিপ্ট এটা, সম্ভবত $1 আপনার ইনপুট ফাইল এবং $2 আপনার আউটপুট ফাইল করতে পারেন. এই পাঠক জন্য একটি ব্যায়াম হিসাবে ছেড়ে দেওয়া হয়. মনে রাখবেন যে হত্যা বা হত্যার আগে আপনার সেই সামান্য ঘুম দরকার যখন এটি এখনও প্রস্তুত না হয় তখন ডিডিতে একটি সংকেত প্রেরণের চেষ্টা করে মারা যেতে পারে পছন্দসই হিসাবে আপনার অপেক্ষার পরে পুনরায় সামঞ্জস্যবিধান (হয়তো এমনকি পুরাপুরি দ্বিতীয় ঘুম অপসারণ).
বাশ-এফটিডাব্লু! :-)
http://linuxcommando.blogspot.com/2008/06/show-progress-during-dd-copy.html
মূলত:
kill -USR1 < dd pid >