मैं /proc/uptime
अच्छी तरह से प्रारूप में प्रदर्शित करना चाहता हूं :
DD:HH:MM:SS
/proc/uptime
मुझे सेकंड में सिस्टम का समय दें, क्या कोई मानक समाधान है जो सेकंड को इस प्रारूप में परिवर्तित करता है?
मैं /proc/uptime
अच्छी तरह से प्रारूप में प्रदर्शित करना चाहता हूं :
DD:HH:MM:SS
/proc/uptime
मुझे सेकंड में सिस्टम का समय दें, क्या कोई मानक समाधान है जो सेकंड को इस प्रारूप में परिवर्तित करता है?
जवाबों:
आप इसे उदाहरण के लिए perl और कुछ सरल गणित के साथ कर सकते हैं:
cat /proc/uptime | perl -ne '/(\d*)/ ; printf "%02d:%02d:%02d:%02d\n",int($1/86400),int(($1%86400)/3600),int(($1%3600)/60),$1%60'
यदि आपको सेकंड की आवश्यकता नहीं है, तो आप बस uptime
कमांड चला सकते हैं । तब इसका उत्पादन केवल DD: HH: MM में बदल सकता है।
उदाहरण के लिए उपयोग (इस तरह से काम करता है यदि केवल uptime> 1h)
uptime | perl -ne '/(\d*) day[^\d]*(\d*):(\d*)/ ; printf "%02d:%02d:%02d\n", $1, $2, $3'
नहीं, क्योंकि यह वास्तव में एक कठिन समस्या नहीं है। दिनों की संख्या प्राप्त करने के लिए पूर्णांक विभाजन का उपयोग करके 86400 से सेकंड की संख्या को विभाजित करें। शेष को ले लो और विभाजित करें कि 3600 से घंटे की संख्या प्राप्त करें। मिनटों की संख्या प्राप्त करने के लिए शेष को 60 से विभाजित करें, और आप सेकंड की संख्या के साथ छोड़ दिए जाते हैं। यह सब शेल का उपयोग करके expr
कमांड से किया जा सकता है यदि आपका शेल प्राचीन रूप से अंकगणित का समर्थन नहीं करने के लिए पर्याप्त है
अवधि के बाद सेकंड की संख्या ले रहा है और एक मानव पठनीय तारीख में तब्दील हो कि है एक कठिन समस्या है, और इसलिए वहाँ ऐसा करने के लिए, उदाहरण के लिए मानक तरीके हैं date -r SECONDS
खोल से। लेकिन यह एक अलग समस्या है।
इस उत्तर के प्रासंगिक भाग को अपनाना ।
जब तक आपका अपटाइम एक वर्ष से कम का नहीं हो जाता, तब तक आप निम्न कमांड का उपयोग कर सकते हैं:
TZ=UTC date -d@$(cut -d\ -f1 /proc/uptime) +'%j %T' | awk '{print $1-1"d",$2}'
मैं अपटाइम फ़ाइल के पहले क्षेत्र को निकालता हूं, क्योंकि कम से कम मेरे लिनक्स पर, कुल निष्क्रिय समय वाला दूसरा क्षेत्र है। मैं उस अवधि के बाद से सेकंड की संख्या के रूप में मानता हूं, और उस दिन के दिन को घंटों, मिनटों और सेकंडों में बदल देता हूं। चूंकि वर्ष का दिन एक पर शुरू होता है, मैं अपने अंतिम awk
आह्वान में उस से एक घटाता हूं ।
\n
के लिए newline अच्छा होगा!