Methode 1
Obwohl NetworkManager.conf die Protokollierung zulässt, wird dies anscheinend immer noch in syslog gespeichert. Kern.log hat es jedoch auch.
grep 'associated' /var/log/kern.log | tail -n1
Jun 21 17:08:25 anaconda kernel: [ 4910.819781] wlan1: associated
Methode 2
Ich habe festgestellt, dass NetworkManager die letzte Verbindungszeit speichert und sie in /var/lib/NetworkManager/timestamps
Dateien im Zeitformat der Unix-Epoche (Sekunden seit 1970) sortiert . Meins sieht zum Beispiel so aus:
$ cat /var/lib/NetworkManager/timestamps
[timestamps]
c562ac2d-8911-4273-b165-ed1495b28c9a=1432777079
46cfcdd9-d095-418f-acd6-0a7ca282bb9a=0
d81fb3d0-1717-42c0-903d-4622c2381597=1434895707
b0bdefe6-df88-49bb-83d8-154dd21d77d9=1433093286
Den neuesten Eintrag anzeigen
date --date=@"$( awk -F'=' 'BEGIN {var=0}{if(var<$2) var=$2;} END{print var}' /var/lib/NetworkManager/timestamps )"
Awk sucht nach der größten Epochenzeit (mit anderen Worten nach der neuesten) und das Datum konvertiert sie in eine für Menschen lesbare Form.
Ich vermute auch, dass diese Datei ( /var/lib/NetworkManager/timestamps
) vom grafischen Menü "Verbindungen bearbeiten" verwendet wird, um das letzte Mal der Verbindung anzuzeigen
Das Problem ist, dass, wenn Sie immer noch mit einem Access Point verbunden sind, die GUI-Methode nicht anzeigt, now
wann die Verbindung zuletzt hergestellt wurde
Sergiy Kolodyazhnyy
quelle
man NetworkManager.conf
, die Datei ist/etc/NetworkManager/NetworkManager.conf
; Dies funktioniert erst, nachdem die Anmeldung im Dämon aktiviert wurde. Leider muss ich dies anschließend überprüfen, sofern der Computer nicht dafür konfiguriert wurde. Wie auch immer +1 für diekern.log
Lösung und für die erste Lösung, die in anderen Fällen hilfreich sein könnteSie können die Datei überprüfen, die
/var/log/syslog
angezeigt wird, wenn Sie das letzte Mal eine Verbindung zu einem Netzwerk hergestellt haben.Beispiel
Sie können einen grep- Befehl ausführen , um nur das abzurufen , was Sie aus dem Protokoll benötigen
quelle
< /var/apt/syslog grep DHCPREQUEST
oder Variationen vorschlagen .DHCPREQUEST
ist nicht zuverlässig. Ich bin seit dem Nachmittag online und hatte viele DHCP-Anfragen.Überprüfen Sie,
CONNECTED_GLOBAL
nachdem wir gefunden haben ,link connected
in/var/log/syslog
/link connected/,/CONNECTED_GLOBAL/
quelle
sudo
die erste, aber keine davon funktioniert, ich denke, es liegt an der POSIXly[[:space:]]
. Welche Version vonawk
läufst du?sudo
entfernt. GNU Awk 4.1.1, API: 1.1 (GNU MPFR 3.1.2-p11, GNU MP 6.0.0)%
;) Wenn es eine Ausgabe in der Zeile unten gibt%
. Alles außer das ist perfekt!Wenn Sie nicht den "richtigen" Weg finden, können Sie immer Ihren eigenen herstellen!
Die folgende Bash-Funktion zeigt an, ob Sie online sind (im Internet) oder nicht.
Sie müssten lediglich ein Skript schreiben, das es aufruft (in einer Schleife und dann im Ruhezustand) und das letzte Datum und die letzte Uhrzeit in einer Datei aufzeichnet (überschreibt, sodass es nur den neuesten Wert hat).
Sie müssten der Schleife Code hinzufügen, damit diese beim ersten Aufruf überprüft und protokolliert wird (damit Ihr Anfangszustand korrekt festgelegt wird).
Danach würden Sie sich erst wieder anmelden, wenn der Status zum ersten Mal offline geschaltet wird und wenn er zum ersten Mal online geschaltet wird, nachdem er offline geschaltet wurde. Es ist einfacher zu programmieren als zu erklären. ;)
Die Genauigkeit wird dadurch eingeschränkt, wie lange Sie eine Verzögerung (Ruhezustand) in der Schleife verwenden (um zu verhindern, dass es sich um eine sehr enge Schleife handelt, die möglicherweise zu viele Systemressourcen verbraucht). Außerdem ist nicht bekannt, was passiert, bevor die Schleife gestartet wird oder wenn es nicht läuft.
Das Skript selbst kann (
&
am Ende des Aufrufs) als Hintergrundjob gestartet werden , möglicherweise mit einemnohup
, der ausgeführt wird, wenn der übergeordnete Prozess beendet wird), wenn sich Ihr Benutzer anmeldet, indem er es aus Ihrer $ HOME / .profile-Datei ausführt. Starten Sie es mit Ihrem Desktop-Autostart-Dienstprogramm (KDE oder Gnome), von einem Cron-Job aus, der regelmäßig prüft, ob es noch nicht ausgeführt wird, oder sogar von einem beliebigen Startsystem aus (init / systemd / etc.), wenn Sie über ausreichende Kenntnisse verfügen Das.)Wenn Sie so etwas nicht finden können, das genau das tut, was Sie wollen, ist es oft nicht zu schwierig, ein eigenes Skript zu schreiben, um es wie einen Daemon im Hintergrund auszuführen.
Es ist am besten, es von einem normalen Benutzerkonto aus auszuführen, sofern Sie es nicht in einer robusten Sprache wie C oder Python codieren, da Shell-Skripte, die mit Root-Rechten ausgeführt werden, häufig Sicherheitsrisiken bergen.
Dieser Ansatz hat ein anderes Problem. Manchmal gibt ein Ping-Timeout einen falschen Offline-Status aus.
Ich habe ein vollständiges Skript, " offline_alert" , das so ziemlich das Gegenteil von dem tut, was Sie wollen - benachrichtigt mich, wenn ich offline gehe -, aber der Code kann sich als nützlich erweisen. Es hat eine bessere Offline-Funktion, mit der versucht wird, durch Ping-Zeitüberschreitungen verursachte Fehlalarme zu reduzieren.
quelle
Eine Möglichkeit zum Überprüfen von Dienst- / Dämonprotokollen, die über das Internet zur Arbeit weitergeleitet werden. Zum Beispiel NTP-Updates (Network Time Protocol).
Siehe
dpkg -L ntpdate
Netzwerkstatus-HooksNun, ich habe sein Protokoll auf Ubuntu-Desktop überprüft, sein Update wird ausgeführt, wenn das Netzwerk hochgefahren ist, und ich versuche es nach einer kurzen Verzögerung, wenn das letzte Update fehlschlägt. Es verbindet
ntp.ubuntu.com
.(Hinweis: Ich habe die erste Spalte in der Ausgabe für meine Kommentare hinzugefügt.)
Ich bestätige, dass es standardmäßig für Ubuntu 14.04 LTS 64Bit Desktop- und Server-Editionen installiert ist.
Ich habe es in VM ausprobiert. Es wird nur angezeigt, wann eine Verbindung hergestellt oder eine erneute Verbindung hergestellt wird (mit verfügbarem Internet). Nicht das, was Sie wollen (das letzte Mal wurde verbunden)
Beachten Sie, dass syslog ein rotierendes Protokoll ist. Wenn Sie alle Protokolle durchsuchen möchten, auch alte, komprimierte, verwenden Sie
zgrep
quelle
ntpdate
wird standardmäßig installiert, nicht jedochntpd
/openntpd
daemon / service, das in separaten Paketen geliefert wird . Trennen Sie die Verbindung und stellen Sie sie wieder her, um zu überprüfen, ob Uhrzeit und Datum falsch eingestellt sind.ntpdate
kann verwendet werdencron
, um die Zeit in regelmäßigen Abständen zu aktualisieren. Es führt zu denselben Ergebnissen wie ein Dienst (ntpd / openntpd). Aber Sie suchen nach einer Standardkonfiguration und keiner zusätzlichen Optimierung, oder?