(gelöst) last - wie weit zurück funktioniert das?

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
michaa7
Beiträge: 4632
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

(gelöst) last - wie weit zurück funktioniert das?

Beitrag von michaa7 » 24.10.2023 22:51:22

Hi,

egal wie viele Einträge (hier zuletzt 2000) ich anzeigen lasse, "last" geht nicht weiter als den 1. September 2023 zurück.

Code: Alles auswählen

"wtmp begins Fri Sep  1 00:41:17 2023"
"man last" zeigt mir nichts sinnvolles eine Begrenzung zu überwinden, auch nicht wo diese eigentlich gesetzt wurde. Nur zur Klärung, die Installation ist jahrealt.

Ich möchte eigentlich nur wissen, ob ich an einem bestimmten Tag im August hier war (oder noch woanders). Eingeloggt sein bzw ein an diesem Tag laufender Desktop wäre für mich ein ausreichender Hinweis.

A) wo wird die Begrenzung für last gesetzt? (für die Beantwortung meiner Frage jetzt natürlich zu spät)
B) wie kann ich sonst noch feststellen ob der Rechner an einem bestimmten Tag gelaufen ist? (Uhrzeit wäre von Vorteil)
Zuletzt geändert von michaa7 am 24.10.2023 23:00:16, insgesamt 1-mal geändert.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

michaa7
Beiträge: 4632
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: last - wie weit zurück funktioniert das?

Beitrag von michaa7 » 24.10.2023 23:00:00

Ok, gefunden. Es gibt den file /var/log/wtmp.1 der die älteren Daten enthält. mit "last -f /var/log/wtmp.1" wird diese an statt des aktuellen files genutzt.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

uname
Beiträge: 12075
Registriert: 03.06.2008 09:33:02

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von uname » 25.10.2023 13:56:10

Auch wenn es vielleicht nicht wichtig ist. Wahrscheinlich ist in /etc/logrotate.conf konfiguriert, wann die Datei rotiert wird.

Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von MSfree » 25.10.2023 14:03:11

uname hat geschrieben: ↑ zum Beitrag ↑
25.10.2023 13:56:10
Wahrscheinlich ist in /etc/logrotate.conf konfiguriert, wann die Datei rotiert wird.
Ja, der Default ist, daß die Datei monatlich rotiert wird, wenn sie größer als 1MB ist und es wird nur eine Datei in der History aufgehoben. Siehe auch: /etc/logrotate.d/wtmp.

michaa7
Beiträge: 4632
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von michaa7 » 25.10.2023 15:07:27

Mittlerweile ist es ja gelöst. Danke für eure weiteren Infos. Ich war einfach überrascht, dass "last" im default Modus nur einen so kurzen Rückblick erlaubt und wußte nichts von wtmp.1, wird auch in den "man" nicht erwähnt. Mittlerweile ist es ja gelöst.

Dennoch frage ich mich ob das nicht irgendwie gezielter geht. Ich wollte "grep" bemühen, aber da stehe ich wieder auf dem Schlauch.

Wie könnte man sich die (alten) Einträge vom beispielsweise 13. April anzeigen lassen?

So geht es nicht:

Code: Alles auswählen

$ grep -i "*Apr 13*" /var/log/wtmp.1
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von MSfree » 25.10.2023 16:07:42

michaa7 hat geschrieben: ↑ zum Beitrag ↑
25.10.2023 15:07:27
Dennoch frage ich mich ob das nicht irgendwie gezielter geht.
Da du Ursache bei logrotate liegt, kannst du die Anzahl der aufgehobenen Dateien in der o.g. Datei einstellen. Dann gibt es nicht nur wtmp und wtmp.1 sondern auch weitere wtmp.2 wtmp.3 ... je nach dem, wie hoch du die Zahl setzt.

michaa7
Beiträge: 4632
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von michaa7 » 25.10.2023 16:41:07

Nee, jetzt haben wir uns misverstanden. wtmp.1 reicht für meine Zwecke weit genug zurück. Aber um mir die logins eines bestimmten Datums anzeigen zu lassen muss ich ja irgernd ein "n=x" für "last -n x" abschätzen und mir den den ganzen Schlauch ausgebenlassen udn durchscrollen. Das geht zwar, aber da das ja textdateien sind sollte man ja greppen können. Nur ich bekomme es nciht hin.

Upps, das ist nicht so eine textdatei wie ich das erwartet habe ...

Aber so geht es:

Code: Alles auswählen

 last -f  /var/log/wtmp.1 | grep -i "May  5"
Zuletzt geändert von michaa7 am 25.10.2023 17:22:51, insgesamt 1-mal geändert.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

uname
Beiträge: 12075
Registriert: 03.06.2008 09:33:02

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von uname » 25.10.2023 16:44:55

Naja grep findet wohl nichts, weil das Format der Datei anders ist. grep sucht im Übrigen nach regulären Ausdrücken und fgrep nicht. Wenn ich mir (ohne was kaputtzumachen) eine Datei anschauen will, dann nutze ich Vim mit der Option "-". Vim ist schon toll und kann recht große Dateien lesen und/oder bearbeiten.

Code: Alles auswählen

last -f  /var/log/wtmp.1 | vim -
cat /var/log/wtmp.1 | vim -
Und wenn die Datei lesbar ist, kann man auch ganz gut suchen, wenn man weiß, wie das mit Vim geht. Wenn man nicht weiß, wie das geht, dann empfehle ich vimtutor mal im Terminal aufzurufen. Ein Vim-Tutor als Textdatei geöffnet mit Vim. Da steht auch irgendwo wie man den Vim wieder verlässt. :mrgreen: Oder man kauft sich eine Vim-Tasse oder ein Vim-Buch wie z. B. vim GE-PACKT.

rodney
Beiträge: 336
Registriert: 09.12.2016 04:15:59

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von rodney » 25.10.2023 16:55:03

uname hat geschrieben: ↑ zum Beitrag ↑
25.10.2023 16:44:55
[...]

Code: Alles auswählen

last -f  /var/log/wtmp.1 | vim -
cat /var/log/wtmp.1 | vim -
[...]
Kleine Korrektur:

Da es sich um Binaerdateien handelt fehlt dazwischen ein xxd:

Code: Alles auswählen

last -f  /var/log/wtmp.1 | xxd | vim -
cat /var/log/wtmp.1 | xxd | vim -
... nicht dass damit jemand gleich die Lust verliert ;-)

michaa7
Beiträge: 4632
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von michaa7 » 25.10.2023 17:22:26

toll, aber was ich als Beispiel angegeben habe funktioniert doch. der Aufwand mit vim ist überflüssig. Und wonach suchst du damit eigentlich?
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von heisenberg » 25.10.2023 17:39:38

Eine kleine bash-Hilfsfunktion, die mehrere wtmp-Dateien in chronologischer Reihenfolge textuell ausgibt:

Code: Alles auswählen

last_all() {
  args=""
  for datei in $(ls -tr "$@") ; do
      args="$args -f $datei"
  done
  last $args
}

# Aufruf

$ last_all /var/log/wtmp*
Jede Rohheit hat ihren Ursprung in einer Schwäche.

tobo
Beiträge: 1997
Registriert: 10.12.2008 10:51:41

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von tobo » 25.10.2023 18:43:45

Anstatt $(ls -tr "$@") könnte man auch einfach nur "$@" verwenden.

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von heisenberg » 25.10.2023 18:48:19

tobo hat geschrieben: ↑ zum Beitrag ↑
25.10.2023 18:43:45
Anstatt $(ls -tr "$@") könnte man auch einfach nur "$@" verwenden.
Dann stimmt die Sortierung aber nicht:

Code: Alles auswählen


cd /var/log
set wtmp*

$ echo $@ 
wtmp wtmp.1

$ echo $@ | xargs ls -tr 
wtmp.1  wtmp
Der Plan ist, das von alt nach neu zu sortieren.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

tobo
Beiträge: 1997
Registriert: 10.12.2008 10:51:41

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von tobo » 25.10.2023 18:59:14

Dann schreibt man das halt rückwärts:

Code: Alles auswählen

args="-f $datei $args"
Edit:
Wobei dann natürlich Zeitsprünge in der Datei wären - anders wäre es kontinuierlich rückwärts laufend.

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von heisenberg » 25.10.2023 19:05:23

tobo hat geschrieben: ↑ zum Beitrag ↑
25.10.2023 18:59:14
Dann schreibt man das halt rückwärts:

Code: Alles auswählen

args="-f $datei $args"
Ja. So funktioniert das scheinbar.

Wie ist definiert, in welcher Reihenfolge die Bash das Globbing auflöst? Also wtmp*. Es scheint ja erst mal ein normaler Sortieralgorithmus nach Dateinamen zu sein - was passen würde, solange man seine Logrotation nicht sehr ungewöhnlich gestaltet. (z. B. wtmp.september, wtmp.oktober, wtmp.november).

Code: Alles auswählen

last_all() {
  args=""
  for datei in "$@" ; do
      args="-f $datei $args"
  done
  last $args
}

# Aufruf

$ last_all /var/log/wtmp*
Jede Rohheit hat ihren Ursprung in einer Schwäche.

tobo
Beiträge: 1997
Registriert: 10.12.2008 10:51:41

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von tobo » 25.10.2023 19:41:52

heisenberg hat geschrieben: ↑ zum Beitrag ↑
25.10.2023 18:48:19
Der Plan ist, das von alt nach neu zu sortieren.
Man könnte "$@" nehmen und zur Ausgabe dann tac <(last $args).

Benutzeravatar
GregorS
Beiträge: 2626
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von GregorS » 25.10.2023 20:31:58

michaa7 hat geschrieben: ↑ zum Beitrag ↑
25.10.2023 15:07:27
Mittlerweile ist es ja gelöst.
Ich hab's gelöst, indem ich logrotate deaktiviert habe („exit 0“ an den Anfang von /etc/cron.daily/logrotate, anschließend Schreibrechte für alles und jeden entziehen). Für mich als reinen Anwender ist logrotate grundsätzlich sinnlos - hat hier noch jemand ein Problem, was den Speicherplatz angeht?

Okay, das mag gut sein, wenn man administriert und sich Logs per Mail schicken lässt.

Aber sonst? Mir fällt kein Grund ein.

Gruß

Gregor
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

michaa7
Beiträge: 4632
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von michaa7 » 26.10.2023 13:59:10

MSfree hat geschrieben: ↑ zum Beitrag ↑
25.10.2023 14:03:11
uname hat geschrieben: ↑ zum Beitrag ↑
25.10.2023 13:56:10
Wahrscheinlich ist in /etc/logrotate.conf konfiguriert, wann die Datei rotiert wird.
Ja, der Default ist, daß die Datei monatlich rotiert wird, wenn sie größer als 1MB ist und es wird nur eine Datei in der History aufgehoben. Siehe auch: /etc/logrotate.d/wtmp.
Da ich jetzt über diese Sache gestolpert bin möchte ich sie verstehen:

Wenn ich jetzt den rotate Wert auf "-1" setze, dann werden wohl keine wtmp.* Dateien gelöscht. Ich verstehe aber den Vorgang nicht was diese sich dann anhäufenden alten wtmp.* Dateien "rotieren bzw rotiert werden? Mich interessiert das im Grunde auch nicht. Aber ich bin nicht sicher ob nicht etwas passiert was ich nicht will? (Dieses ganze Gemache mit olddir und was weiß ich verunsichert mich etwas)
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von MSfree » 26.10.2023 14:53:41

michaa7 hat geschrieben: ↑ zum Beitrag ↑
26.10.2023 13:59:10
Wenn ich jetzt den rotate Wert auf "-1" setze, dann werden wohl keine wtmp.* Dateien gelöscht.
Richtig, dann werden die Dateien ewig aufgehoben.Das kann natürlich irgendwann den Plattenplatz füllen. Das Plattenplatzproblem läßt sich aber reduzieren, indem man compress angibt, was die rotierten Dateien zusätzlich komprimiert.
Ich verstehe aber den Vorgang nicht was diese sich dann anhäufenden alten wtmp.* Dateien....
Wenn die Bedingung für die Rotation erfüllt ist (z.B. älter als ein Monat oder größer als 10MB) dann wird
wtmp in wtmp.1 umbenannt, sollte wtmp.1 bereits existieren, wird vorher wtmp.1 in wtmp.2 umbenannt, sollte wtmp.2 bereits existieren, wird vorher wtmp.2 in wtmp.3 umbenannt ....

Wenn sich bereits hunderte alte Dateien auf /var/log befinden, kann das Umbenennen auch mal etwas länger dauern. Neben dem Plattenplatzproblem kann also auch noch ein Geschwindikgkeitsproblem oben drauf kommen.

Daher stellt man den "rotate"-Wert typischerweise nicht auf -1 sondern auf eine sorgfältig ausgewählte Zahl. Wenn man monatlich rotiert, hat man mit rotate 42 einen Zaitraum von 3.5 Jahren abgedeckt.

Benutzeravatar
GregorS
Beiträge: 2626
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von GregorS » 26.10.2023 15:09:31

MSfree hat geschrieben: ↑ zum Beitrag ↑
26.10.2023 14:53:41
Wenn sich bereits hunderte alte Dateien auf /var/log befinden, kann das Umbenennen auch mal etwas länger dauern. Neben dem Plattenplatzproblem kann also auch noch ein Geschwindikgkeitsproblem oben drauf kommen.
Was meinst Du mit „etwas länger“? Das Umbenennen einer Datei dauert auf meinem nicht gerade schnellen Rechner knapp 15 ms. Bei 100 Dateien wären das 1,5 Sekunden. Findest Du das lange? Oder denkst Du dabei noch an eine 386er Single-Core-CPU mit 16 MHz?

Gruß

Gregor
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

michaa7
Beiträge: 4632
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von michaa7 » 26.10.2023 18:10:40

MSfree hat geschrieben: ↑ zum Beitrag ↑
26.10.2023 14:53:41
...dann wird
wtmp in wtmp.1 umbenannt, sollte wtmp.1 bereits existieren, wird vorher wtmp.1 in wtmp.2 umbenannt, sollte wtmp.2 bereits existieren, wird vorher wtmp.2 in wtmp.3 umbenannt ....
Ok, verstanden. Allerdings nicht warum sich die Entwickler dieses Nadelöhr gebastelt haben. Das führt hier zwar zu weit, aber es ist nicht offensichtlich warum die Reihenfolge nicht aufsteigend bleiben könnte ...
MSfree hat geschrieben: ↑ zum Beitrag ↑
26.10.2023 14:53:41
... Daher stellt man den "rotate"-Wert typischerweise nicht auf -1 sondern auf eine sorgfältig ausgewählte Zahl. Wenn man monatlich rotiert, hat man mit rotate 42 einen Zaitraum von 3.5 Jahren abgedeckt.
Das hat dann den Effekt, dass für einen Zeitraum von 3.5 Jahren keine neue Datei angelegt wird soweit man auch den minsize Wert angepasst, weil der, nach rotate stehend, sonst dennoch ein rotate auslößt und von den 42 Wochen nur einige wenige Wochen übrigblieben, richtig?

Neee, jetzt bin ich völlig durcheinander, was "monthly" und was "rotate <Zahl>" genau auslösen.


EDIT:

Ok. Verstanden rotate 42 erzeugt 42 monatliche files. Man kannn dann also mehr oder minder gut den gesuchten Monat abschätzen/berechnen und dann dort suchen.. Nicht sehr handy. Schade dass es keine Option zwischen monthly und yearly gibt.
Ich will jetzt aber auch nciht übertreiben. Ich habe "last", soweit es weiter zurückliegt als die vergangenen Tage nun nach fast 2 Jahrzehnten linux zum ersten mal gebraucht ...
Zuletzt geändert von michaa7 am 26.10.2023 18:24:39, insgesamt 1-mal geändert.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von MSfree » 26.10.2023 18:22:48

michaa7 hat geschrieben: ↑ zum Beitrag ↑
26.10.2023 18:10:40
Das hat dann den Effekt, dass für einen Zeitraum von 3.5 Jahren keine neue Datei angelegt wird
Nein, das heißt, daß maximal 42 Dateien aufgehoben werden. Ist noch keine rotierte Datei vorhanden, heißt die erste eben wtmp.1. Sind bereits eine wtmp.1 bis wtmp.42 vorhanden, dann wird wtmp.42 gelöscht und der Rest durchrotiert.

Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von MSfree » 26.10.2023 18:24:12

michaa7 hat geschrieben: ↑ zum Beitrag ↑
26.10.2023 18:10:40
Man kannn dann also mehr oder minder gut den gesuchten Monat abschätzen/berechnen
Das Erstellungsdatum der Datei ändert sich durch die Rotation nicht. Man kann das Datum also direkt ablesen.

michaa7
Beiträge: 4632
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: (gelöst) last - wie weit zurück funktioniert das?

Beitrag von michaa7 » 26.10.2023 18:26:04

MSfree hat geschrieben: ↑ zum Beitrag ↑
26.10.2023 18:24:12
michaa7 hat geschrieben: ↑ zum Beitrag ↑
26.10.2023 18:10:40
Man kannn dann also mehr oder minder gut den gesuchten Monat abschätzen/berechnen
Das Erstellungsdatum der Datei ändert sich durch die Rotation nicht. Man kann das Datum also direkt ablesen.
Ahhhh, das ist ein guter Hinweis. Danke, ja , das hilft bei der suche extrem!
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Antworten