Pertanyaan Bagaimana cara mengekstrak riwayat login?


Saya perlu mengetahui riwayat masuk untuk pengguna tertentu (yaitu masuk dan keluar waktu), Bagaimana cara mengekstrak riwayat ini untuk rentang tanggal tertentu di Linux?


80
2017-08-28 08:00






Jawaban:


Anda dapat mencoba last perintah:

last john 

Ini mencetak riwayat login / out dari pengguna john. Padahal hanya berjalan

last

mencetak riwayat masuk / keluar semua pengguna.


115
2017-08-28 08:11



Ini hanya mengembalikan nilai untuk bulan ini di sebagian besar distro Linux. - ewwhite


Jika Anda perlu melangkah lebih jauh ke belakang dalam sejarah dari satu bulan, Anda dapat membaca /var/log/wtmp.1 file dengan last perintah.

last -f wtmp.1 john akan menampilkan riwayat login untuk pengguna dalam bulan sebelumnya john.

Log output terakhir tidak terlalu berat dan relatif mudah diuraikan, jadi saya mungkin akan menyalurkan output ke grep untuk mencari pola tanggal tertentu.

last john | grep -E 'Aug (2[0-9]|30) ' untuk menunjukkan 20-30 Agustus. Atau sesuatu seperti:

last -f /var/log/wtmp.1 john | grep -E 'Jul (1[0-9]|2[0-9]|30) ' untuk memperoleh 10-30 Juli bagi pengguna john.


39
2017-08-28 08:54





Bagaimana cara mengekstrak riwayat login untuk rentang tanggal tertentu di Linux?

Contoh untuk daftar semua pengguna login dari 25 hingga 28 / Agustus:

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
  • awk '{ print $5" "$6" "$7 }' untuk mengekstrak waktu tanggal di kolom yang sesuai dari last keluaran
  • +%s untuk mengonversi waktu ke waktu Epoch
  • -ge berdiri untuk lebih besar atau sama
  • -le berdiri kurang dari atau sama

Anda juga dapat melakukannya untuk pengguna tertentu dengan last <username>.


17
2017-08-28 08:50



Itu ekspresi yang sangat buruk. Bukankah grep lebih bersih sejak last output cukup mudah dibaca? - ewwhite
Bisakah kamu grep dari "15 Agustus 09:00" hingga "25 Agustus 21:00"? - quanta
OP tidak meminta rentang waktu. - ewwhite
@whwhite ekspresi terlihat cantik bagi saya, jika Anda tidak suka tampilan bash sintaks ini mungkin bukan situs untuk Anda. - ekerner
@ekerner Kamu benar. Saya akan pergi ke tempat lain;) - ewwhite