"अंतिम आदेश: नवीनतम उपयोगकर्ता लॉगिन कैसे दिखाएं?


19

जैसा कि मुझे पता है, lastकमांड सभी उपयोगकर्ताओं द्वारा हाल ही में लॉगिन दिखाता है। लेकिन मेरे पीसी (CentOS) का उपयोग लगभग एक वर्ष के लिए किया गया है, और कई उपयोगकर्ता लॉग इन हैं। मैंने lastकमांड का उपयोग करने की कोशिश की , लेकिन यह सिर्फ जून 2013 से सितंबर 2013 तक दिखा।

मेरा सवाल है: मैं हाल ही में लॉग इन कर चुके नवीनतम उपयोगकर्ताओं को कैसे दिखा सकता हूं, कह सकते हैं (दिसंबर 2013 से जनवरी 2014 तक)?


यदि /var/log/wtmpफ़ाइल मौजूद है और इसके अंतिम परिवर्तन समय का उपयोग करके आप देख सकते हैं stat
mkc

यह भी ध्यान दें कि अंतिम कमांड के आउटपुट में नवीनतम प्रविष्टियाँ सबसे ऊपर होंगी।
एमकेसी

वैसे भी इसे नीचे करने के लिए?
थॉमस

1
कोशिश करेंlast | tac
mcc

1
बस एक स्टेट करें:stat /var/log/wtmp
mkc

जवाबों:


15

lastएक लॉग फ़ाइल से पढ़ता है, आमतौर पर /var/log/wtmpऔर अतीत में उपयोगकर्ताओं द्वारा किए गए सफल लॉगिन प्रयासों की प्रविष्टियों को प्रिंट करता है। आउटपुट ऐसा है कि अंतिम लॉग इन उपयोगकर्ता प्रविष्टि शीर्ष पर दिखाई देती है। आपके मामले में शायद इसकी वजह से यह नोटिस से बाहर हो गया।

यह जांचने के लिए कि फ़ाइल /var/log/wtmpअंतिम बार कब लिखी गई थी, आप statकमांड का उपयोग कर सकते हैं :

stat /var/log/wtmp

आउटपुट को रिवर्स में प्रिंट करने के लिए, आप निम्न GNU tac(कैट के विपरीत) आउटपुट को निम्नानुसार पाइप कर सकते हैं:

last | tac

16

आप lastlogलिनक्स पर कमांड कमांड का भी उपयोग कर सकते हैं । जब आप उपयोगकर्ता लॉगिन के लॉग को देखते हैं तो यह आपको और अधिक दानेदार नियंत्रण प्रदान करता है।

लास्ट मैन पेज से अंश

   lastlog - reports the most recent login of all users or of a given user

उदाहरण

उन उपयोगकर्ताओं का पता लगाने के लिए जो पिछले 100 दिनों में सिस्टम में लॉग इन हुए हैं।

$ lastlog -b 0 -t 100
Username         Port     From             Latest
sam              pts/0    pegasus          Wed Jan  8 20:32:25 -0500 2014
joe              pts/0    192.168.1.105    Thu Dec 12 12:47:11 -0500 2013

इससे पता चलता है कि पिछली बार इन उपयोगकर्ताओं ने इस सिस्टम में लॉग इन किया था। समय की सीमा पिछले 100 दिनों को दर्शाती है। आज से पहले ( -b 0) और 100 दिन पहले ( -t 100) के बाद।

आप किसी भी रेंज को छोड़ कर और कभी भी लॉग इन किए गए हर usre को देख सकते हैं, और आखिरी बार जब वे लॉग इन करते हैं, तो आप सभी उपयोगकर्ताओं को दिखा सकते हैं।


0

आप इस स्क्रिप्ट को आज़मा सकते हैं:

for user in $( awk -F: '{ print $1}' /etc/passwd)
do
lastlog=$(sudo lsuser -a time_last_login $user | awk -F'=' '{print $NF}')
echo "$user         \c"; perl -le "print scalar localtime($lastlog);"
done

1
Unix.SE में आपका स्वागत है। क्या आप बता सकते हैं कि मौजूदा जवाबों के मुकाबले इस दृष्टिकोण के क्या फायदे हैं, यदि कोई हो?
स्टीफन किट

यह स्क्रिप्ट UNIX (AIX) में सभी उपयोगकर्ताओं के लिए अंतिम लॉग टाइमस्टैम्प

जानकारी के लिए धन्यवाद; कृपया अपने उत्तर को संपादित करने का उल्लेख करें। ध्यान दें कि प्रश्न CentOS के बारे में है, AIX के बारे में नहीं।
स्टीफन किट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.