जवाबों:
रेडहैट-स्टाइल लाइनक्स पर लॉगिन लॉग्स को कहा जाता है wtmp
( man wtmp
), /var/log/
डिफ़ॉल्ट रूप से संग्रहित किया जाता है, और आप उन्हें utmpdump
(RHL6 पर) का उपयोग करके पुनः प्राप्त कर सकते हैं ।
[root@server ~]# utmpdump /var/log/wtmp* | awk '$4~"root" {print}'
Utmp dump of /var/log/wtmp
[7] [01320] [ts/0] [root ] [pts/0 ] [192.168.1.101 ] [192.168.1.101 ] [Tue Sep 24 00:31:47 2013 UTC]
[7] [01817] [ts/3] [root ] [pts/3 ] [192.168.1.101 ] [192.168.1.101 ] [Tue Sep 24 00:38:22 2013 UTC]
[7] [01690] [ts/0] [root ] [pts/0 ] [192.168.1.101 ] [192.168.1.101 ] [Tue Sep 24 00:59:04 2013 UTC]
[7] [23641] [ts/0] [root ] [pts/0 ] [192.168.1.101 ] [192.168.1.101 ] [Wed Sep 25 19:12:44 2013 UTC]
[7] [03020] [ts/0] [root ] [pts/0 ] [192.168.1.100 ] [192.168.1.100 ] [Fri Sep 27 21:33:40 2013 UTC]
...
ऐसा लगता है last
कि आप जो करने की कोशिश कर रहे हैं उसे हासिल करने के लिए इस्तेमाल किया जा सकता है। जानकारी निकालने के लिए आपको अंतिम आदेश में तारीख संलग्न करने की आवश्यकता है।
last | while read line; do date=`date -d "$(echo $line | awk '{ print $5" "$6" "$7 }')" +%s`; [[ $date -ge `date -d "Aug 25 00:00" +%s` && $date -le `date -d "Aug 28 00:00" +%s` ]] && echo $line; done
हालांकि, यदि आप किसी विशेष उपयोगकर्ता के बारे में जानकारी प्राप्त करने से संबंधित हैं, तो आप अंतिम कमांड को संशोधित कर सकते हैं last username
और फिर उस पर while
लूप को पाइप कर सकते हैं। यह आपको पिछले एक वर्ष के लिए किसी विशेष उपयोगकर्ता की लॉगिन जानकारी प्रदान करेगा।
मैंने उपरोक्त कमांड का परीक्षण किया और यह मेरे सिस्टम में पूरी तरह से ठीक है। मैंने यहाँ से उपरोक्त आदेश लिया ।
आप अपनी आवश्यकताओं के अनुरूप कमांड में तारीख बदल सकते हैं।
last
कमांड का प्रयास करने का उल्लेख करते हैं - लेकिन आपको उससे अधिक शोध करना चाहिए, और किसी भी मामले में, आपने वास्तव में निर्दिष्ट नहीं किया है किlast
कमांड क्यों उपयोगी नहीं है। भी, "लॉग इन" को परिभाषित करें। क्या आप कंसोल लॉगिन को ट्रैक करना चाहते हैं? SSH लॉगिन? Emacs मना करें,telnet
लॉगिन करें? या सिर्फ कुछ भी PAM के साथ प्रमाणित? विशिष्ट होना ।