मैं किसी तरह के सिस्टम स्टैटस को परागण किए बिना ऐसा करने का तरीका नहीं जानता, जैसे अन्य उत्तर स्क्रीनसेवर या बैश आइडल टाइमर का उपयोग करते हैं, या .bash_logout से चल रहे हैं, लेकिन यहाँ CPU उपयोग की जांच करने का विचार है।
इसमें अभी भी प्रत्येक n सेकंड में मतदान शामिल होगा, और यदि आपका CPU उपयोग आपके द्वारा चुनी गई राशि के अंतर्गत है, तो आप जो भी चलाना चाहते हैं उसे स्क्रिप्ट कर सकते हैं। हालाँकि, जो भी आप चलाते हैं वह सीपीयू उपयोग बढ़ा सकता है, लेकिन आप इसे गिनने के लिए अपने "सामान" पर अच्छा उपयोग कर सकते हैं।
यहां शीर्ष का उपयोग करके एक परीक्षण स्क्रिप्ट दी गई है, लेकिन आप इसके बजाय mpstat का उपयोग कर सकते हैं, या इसके बजाय लोड औसत की जांच कर सकते हैं?
while true
do
idle=$(top -bn2 | grep "Cpu(s)"|tail -n 1|sed "s/.*, *\([0-9.]*\)%* id.*/\1/")
echo "idle is $idle"
if [[ $idle > 90 ]]
then
echo "idle above 90%"
echo "Do stuff now"
else
echo "idle below 90%"
echo "Stop doing stuff now"
fi
sleep 1
done
यह सिर्फ एक स्क्रिप्ट है जिसे मैंने ऊपर से बेकार पढ़ने के लिए एक साथ फेंक दिया। आप पार्स कर सकते हैं /proc/stat
लेकिन मुझे लगता है कि यह केवल कुल समय दिखाता है, और आपको अंतराल पर परिणामों की तुलना करने की आवश्यकता होगी। शीर्ष के लिए यह मेरे लिए खुद की समस्या है (लिनक्स टकसाल 16), पहली बार में यह लगता है कि यह कभी भी cpustats को नहीं बदलता है, जैसे कि इसे स्वयं पार्स / प्रोक / स्टेट करने के लिए इंतजार करना पड़ता है, इसलिए top -bn2
सिद्धांत रूप में top -bn1
काम करना चाहिए।