Jawaban:
Log login pada linux redhat-style disebut wtmp( man wtmp), disimpan /var/log/secara default, dan Anda dapat mengambilnya menggunakan utmpdump(pada RHEL6).
[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]
...
Tampaknya lastdapat digunakan untuk mencapai apa yang Anda coba lakukan. Anda perlu menambahkan tanggal ke perintah terakhir untuk mengekstrak informasi.
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
Namun, jika Anda khawatir menemukan informasi tentang pengguna tertentu, Anda dapat memodifikasi perintah terakhir sebagai last usernamedan kemudian pipa whileloop ke sana. Ini akan memberi Anda informasi informasi login pengguna tertentu selama satu tahun terakhir.
Saya menguji perintah di atas dan berfungsi dengan baik di sistem saya. Saya mengambil perintah di atas dari sini .
Anda dapat mengubah tanggal pada perintah untuk memenuhi kebutuhan Anda.
lastperintah - tetapi Anda harus melakukan lebih banyak penelitian dari itu, dan dalam hal apapun, Anda belum benar-benar ditentukan mengapa paralastperintah tidak berguna. juga, tentukan "login". Anda ingin melacak login konsol? Login SSH? Emacs dilarang,telnetlogin? atau hanya sesuatu yang otentik dengan PAM? lebih spesifik .