“Last” komutu: En son kullanıcı girişi nasıl gösterilir?


19

Bildiğim gibi, lastkomut tüm kullanıcıların son oturum açmalarını gösterir. Ancak bilgisayarım (CentOS) yaklaşık bir yıldır kullanılıyor ve giriş yapan birçok kullanıcı var. lastKomutu kullanmaya çalıştım , ancak Haziran 2013'ten Eylül 2013'e kadar gösterdi.

Sorum şu: diyelim ki son giriş yapan son kullanıcıları nasıl gösterebilirim (örneğin Aralık 2013 - Ocak 2014)?


Eğer kontrol eder misiniz /var/log/wtmpdosyasının var olduğunu ve bunun son değişiklik zamanı kullanarak stat.
mkc

Ayrıca, son komutun çıkışındaki en son girişlerin en üstte olacağını unutmayın.
mkc

yine de aşağı yapmak için?
Thomas

1
Deneyinlast | tac
mkc

1
sadece bir stat yap:stat /var/log/wtmp
mkc

Yanıtlar:


15

lastgenellikle bir günlük dosyasından okur /var/log/wtmpve geçmişte kullanıcılar tarafından yapılan başarılı giriş denemelerinin girişlerini yazdırır. Çıktı, son giriş yapan kullanıcıların girişinin üstte görüneceği şekildedir. Sizin durumunuzda belki de bu yüzden fark edilmedi.

Dosyanın /var/log/wtmpen son ne zaman yazıldığını kontrol etmek için şu statkomutu kullanabilirsiniz :

stat /var/log/wtmp

Çıktıyı tersine yazdırmak için, son GNU tac(kedinin tersi) çıkışını aşağıdaki gibi borulayabilirsiniz:

last | tac

16

lastlogLinux'taki komut komutunu da kullanabilirsiniz . Kullanıcı oturumlarının günlüklerine bakarken tarih aralıkları hakkında daha ayrıntılı denetimler sağlar.

lastlog man sayfasından alıntı

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

Misal

Son 100 günde bir sisteme giriş yapmış kullanıcıları bulmak için.

$ 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

Bu, bu kullanıcıların bu sisteme en son ne zaman giriş yaptığını gösterir. Zaman aralığı son 100 günü gösterir. Bugünden önce ( -b 0) ve 100 gün önce ( -t 100).

Ayrıca, tüm kullanıcıları herhangi bir aralığı atlayarak ve daha önce giriş yapmış olan her bir kullanımı ve en son ne zaman giriş yapmış olduklarını görerek de gösterebilirsiniz.


0

Bu komut dosyasını deneyebilirsiniz:

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'ye Hoşgeldiniz. Varsa, bu yaklaşımın mevcut cevaplara göre ne gibi avantajları olduğunu açıklayabilir misiniz?
Stephen Kitt

bu script UNIX (AIX) içindeki tüm kullanıcılar için son günlük zaman damgasını verecektir

Bilgi için teşekkürler; lütfen yanıtınızı düzenleyin . Sorunun AIX ile değil CentOS ile ilgili olduğunu da unutmayın.
Stephen Kitt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.