অন্যরা যেমন বলেছে, সম্ভবত সবচেয়ে ভাল উপায় top। এটি একটি সামান্য টুইট এবং একটি সামান্য পার্সিং প্রয়োজন কিন্তু আপনি শতাংশ হিসাবে বর্তমান CPU ব্যবহার দিতে এটি পেতে পারেন।
topব্যবহারকারী, সিস্টেম প্রক্রিয়া এবং niceপ্রক্রিয়াগুলির মধ্যে সিপিইউ ব্যবহারকে বিভক্ত করে, আমরা তিনটির যোগফল চাই। সুতরাং, আমরা চালাতে পারেন topমধ্যে batch মোড যা আমাদের তার আউটপুট পার্স করতে পারেন। তবে, এখানে যেমন বর্ণনা করা হয়েছে , top -bবুটের পর থেকে 1 ম পুনরাবৃত্তি শতাংশের পরিমাণ দেয়, সুতরাং -n 2আমাদের বর্তমান শতাংশ পেতে কমপক্ষে দুটি পুনরাবৃত্তি ( ) প্রয়োজন। জিনিসগুলি গতি বাড়ানোর জন্য, আপনি dপুনরাবৃত্তির মধ্যে elay সেট করতে পারেন 0.01। অবশেষে, আপনি grepসিপিইউ শতাংশযুক্ত লাইন এবং তারপরে gawkব্যবহারকারী, সিস্টেম এবং দুর্দান্ত প্রক্রিয়াগুলি যোগ করতে ব্যবহার করুন :
top -bn 2 -d 0.01 | grep '^%Cpu' | tail -n 1 | gawk '{print $2+$4+$6}'
----- ------ ----------- --------- ----------------------
| | | | |------> add the values
| | | |--> keep only the 2nd iteration
| | |----------------> keep only the CPU use lines
| |----------------------------> set the delay between runs
|-----------------------------------> run twice in batch mode
আমি ভেবেছিলাম ps -o pcpu axপ্রতিটি চলমান প্রক্রিয়াটির%% যোগ করে আপনি এই তথ্যটি পেতে পারেন। দুর্ভাগ্যক্রমে, এখানেps বর্ণিত হিসাবে , "প্রক্রিয়াটির পুরো জীবদ্দশায় চলমান সময়ের শতকরা পরিমাণ ফিরিয়ে দেয়" যা আপনার প্রয়োজন তা নয়।
সম্পাদনা
আপনার মন্তব্যের ভিত্তিতে, আপনার সংস্করণটি topআমার থেকে আলাদা এবং আপনার পরিবর্তে এটি ব্যবহার করা উচিত:
top -bn 2 -d 0.01 | grep '^Cpu.s.' | tail -n 1 | gawk '{print $2+$4+$6}'
এবং স্থানীয়করণের সমস্যাগুলি এড়াতে লোকাল সিটিতে সেট করুন:
LC_ALL=C top -bn 2 -d 0.01 | grep '^Cpu.s.' | tail -n 1 | gawk '{print $2+$4+$6}'