Vraag Hoe extraheer ik mijn inloggeschiedenis?


Ik moet de inloggeschiedenis weten voor een specifieke gebruiker (dus inlog- en uitlogtijd), Hoe extraheer ik deze geschiedenis voor een specifiek datumbereik in Linux?


80
2017-08-28 08:00


oorsprong




antwoorden:


Je kunt het proberen last commando:

last john 

Het drukt de inlog / uit geschiedenis van gebruiker john uit. Terwijl ik net rende

last

drukt de inlog- / uitloggeschiedenis van alle gebruikers af.


115
2017-08-28 08:11



Dit retourneert alleen waarden voor de huidige maand in de meeste Linux-distributies. - ewwhite


Als u verder dan een maand terug moet gaan in de geschiedenis, kunt u de /var/log/wtmp.1 bestand met de last commando.

last -f wtmp.1 john toont de geschiedenis van logins van de vorige maand voor de gebruiker john.

De laatste loguitvoer is niet te zwaar en relatief gemakkelijk te ontleden, dus ik zou de uitvoer waarschijnlijk naar grep leiden om naar een specifiek datumpatroon te zoeken.

last john | grep -E 'Aug (2[0-9]|30) ' om 20-30 augustus te laten zien. Of zoiets als:

last -f /var/log/wtmp.1 john | grep -E 'Jul (1[0-9]|2[0-9]|30) ' om 10-30 juli te kopen voor de gebruiker john.


39
2017-08-28 08:54





Hoe inloggeschiedenis voor specifieke periode in Linux te extraheren?

Een voorbeeld om alle gebruikers aan te melden van 25 tot 28 augustus:

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 }' om de datumtijd uit de corresponderende kolom uit te halen last uitgang
  • +%s om datetime naar Epoch-tijd te converteren
  • -ge staan ​​voor meer dan of gelijk
  • -le staan ​​voor minder dan of gelijk

U kunt het ook voor specifieke gebruikers doen met last <username>.


17
2017-08-28 08:50



Dat is een machtig lelijke uitdrukking. Zou niet grep schoner zijn sinds last output is redelijk leesbaar? - ewwhite
Kun je dat? grep van "15 augustus 09:00" tot "25 augustus 21:00"? - quanta
Het OP vroeg niet om tijdbereiken. - ewwhite
@ewwhite de uitdrukking ziet er mooi uit voor mij, als je niet van het uiterlijk van bash-syntaxis houdt, is dit misschien niet de site voor jou. - ekerner
@ekerner Je hebt gelijk. Ik ga ergens anders;) - ewwhite