लिनक्स 'w' कमांड के आउटपुट में "IDLE" कॉलम कैसे पढ़ें?


11

मैं एक ऐसी प्रक्रिया का पता लगाने की कोशिश कर रहा हूं, जो किसी दूरस्थ सर्वर पर उपयोगकर्ताओं के सत्रों की निगरानी करती है और जब वे बहुत अधिक निष्क्रिय हो रहे हैं, तो उन्हें सचेत करती है, जो कि लिनक्स कमांड के साथ wउपयुक्त है।

समस्या है - wसत्र के निष्क्रिय समय को निर्दिष्ट करने के लिए 3 विभिन्न स्वरूपों का उपयोग करता है, और मैं उन्हें ठीक से समझ नहीं सकता। एक आउटपुट wइस तरह दिख सकता है:

 11:40:57 up 400 days, 10:46, 13 users,  load average: 5.07, 5.10, 4.83
USER     TTY      FROM           LOGIN@   IDLE   JCPU   PCPU WHAT
john     pts/1    XX.XX.XX.XX   Wed13   22:29m  0.13s  0.04s ssh master-db
june     pts/2    XX.XX.XX.XX   Wed13   46.00s  0.67s  0.13s -bash
jenn     pts/4    XX.XX.XX.XX   11:13   27:47   4.16s  0.11s -bash

जैसा कि आप देख सकते हैं, प्रत्येक उपयोगकर्ता के लिए IDLE के अलग-अलग प्रारूप हैं:

  • "AA.BBs" का स्पष्ट अर्थ है कि AA सेकंड और BB 1/100 सेकंड (जून के मामले में 46 सेकंड) पास हो गया है क्योंकि वह अंतिम बार कंसोल पर सक्रिय था।
  • "एए: बीबीएम" का अर्थ है कि जॉन के अंतिम सत्र में सक्रिय होने के बाद एए घंटे और बीबी मिनट बीत चुके हैं।
  • "एए: बीबी" वह प्रारूप है जिसका मैं पता नहीं लगा सकता - जेनिफर अपने सत्र में कितने समय से सक्रिय नहीं है?

जवाबों:


4

क्वालीफायर के बिना, इसका मतलब है एमएम: एसएस - यानी, मिनट और पूरे सेकंड। एक अतिरिक्त बोनस के रूप में, उस आउटपुट में आपका कोई चौथा प्रारूप नहीं है - निष्क्रियता के कई दिन (NNdays)।


10

मैन पेज से

मानक प्रारूप DDdays, HH: MMm, MM: SS या SS.CC है यदि समय क्रमशः 2 दिन, 1 घंटे या 1 मिनट से अधिक है।

इसलिए आपका आउटपुट MM: SS (> 1m और <1 घंटा) है।


1

आपके प्रश्न का उत्तर काफी नहीं है, लेकिन लॉगिन सत्रों के निष्क्रिय समय की जांच करने का एक आसान तरीका यह है कि / dev / pts को देखना होगा। पिछली बार लॉगिन सत्र प्राप्त इनपुट में पिछली बार की फ़ाइलों का संशोधन समय प्रतिबिंबित करता है।

आपको वहां स्टेट ऑपरेशन करना चाहिए (उदाहरण के लिए, स्टेट -फॉर्मैट = "% n% X" *), और हर चीज को कुछ सेकंड में रखें। किसी भी समय गणना को आसान बनाना चाहिए।


1
यदि आप अपने आप को समय के प्रारूप में पाते हैं, तो आप उस टाइमस्टैम्प के एक स्रोत की तलाश करना चाहते हैं।
cjc

1
मैं उस बारे में कुछ पढ़ता हूं, लेकिन मैंने देखा है कि जिस निष्क्रिय समय की रिपोर्ट की गई है, wवह /dev/ptsफाइलों पर टाइमस्टैम्प अलग है । किसी भी विचार क्यों?
गूस

यह किस संदर्भ में अलग है? मैंने इसे ध्यान से नहीं देखा है, लेकिन "डब्ल्यू" को किसी जगह से जानकारी खींचनी चाहिए, और / देव / पीटी एक स्पष्ट स्थान है। आह, शायद अगर स्क्रीन पर कुछ होता है (/ देव / पीटीएस * * 2-वे संचार होना चाहिए); उस स्थिति में, उपयोगकर्ता निष्क्रिय हो जाएगा, लेकिन, क्योंकि डिवाइस में कुछ चल रहा है, उदाहरण के लिए / dev / pts / 0 अपडेट किया जाएगा।
cjc

यह एक संभावित स्पष्टीकरण है, और यह मेरी योजना को पराजित करेगा - क्योंकि मैं निष्क्रिय सत्रों को बंद करना चाहता हूं, भले ही उपयोगकर्ता कुछ सक्रिय लॉग फ़ाइल को पूंछ रहा हो या उपयोग कर रहा हो watch
Guss

1

जवाब है 27 मिनट और 47 सेकंड

  1. डिफ़ॉल्ट प्रारूप MM: SS है।
  2. 22: 29 मी का मतलब है 22 घंटे और 29 मिनट
  3. 46.00s का अर्थ है 46 सेकंड
  4. 4d का मतलब 4 दिन है
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.