Méthode 1
Même si NetworkManager.conf autorise la journalisation, cela va apparemment toujours dans syslog. Cependant, kern.log l'a également.
grep 'associated' /var/log/kern.log | tail -n1
Jun 21 17:08:25 anaconda kernel: [ 4910.819781] wlan1: associated
Méthode 2
J'ai trouvé que NetworkManager stocke l'heure de la dernière connexion, et il est trié dans un /var/lib/NetworkManager/timestamps
fichier, au format de l'heure unix (secondes depuis 1970). La mienne ressemble à ceci par exemple:
$ 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
Pour afficher la dernière entrée
date --date=@"$( awk -F'=' 'BEGIN {var=0}{if(var<$2) var=$2;} END{print var}' /var/lib/NetworkManager/timestamps )"
Awk recherchera la plus grande époque (en d'autres termes la plus récente) et la date la convertira en une forme lisible par l'homme.
Je soupçonne également que ce fichier ( /var/lib/NetworkManager/timestamps
) est utilisé par le menu graphique Edit Connections pour afficher la dernière connexion
Le problème est que si vous êtes toujours connecté à un point d'accès, la manière GUI continue de now
ne pas montrer l'heure de la dernière connexion établie
Sergiy Kolodyazhnyy
la source
man NetworkManager.conf
, le fichier est/etc/NetworkManager/NetworkManager.conf
; cela ne fonctionnera qu'après avoir activé la connexion dans le démon, mais malheureusement, je dois vérifier cela par la suite en supposant que la machine n'a pas été configurée pour cela. Quoi qu'il en soit +1 pour lakern.log
solution et pour la première solution qui pourraient être utiles dans d'autres casVous pouvez vérifier le fichier
/var/log/syslog
qu'il affichera lors de votre dernière connexion à un réseau.Exemple
Vous pouvez exécuter une commande grep pour extraire uniquement ce dont vous avez besoin du journal
la source
< /var/apt/syslog grep DHCPREQUEST
ou variantes.DHCPREQUEST
n'est pas fiable. Je suis en ligne depuis l'après-midi et depuis j'ai eu beaucoup de requêtes DHCP.Vérifiez
CONNECTED_GLOBAL
après avoir trouvélink connected
dans/var/log/syslog
/link connected/,/CONNECTED_GLOBAL/
la source
sudo
dans le premier, mais rien de tout cela ne fonctionne, je pense que c'est à cause du POSIXly[[:space:]]
. Quelle versionawk
utilisez-vous?sudo
supprimé. GNU Awk 4.1.1, API: 1.1 (GNU MPFR 3.1.2-p11, GNU MP 6.0.0)%
;) S'il y a une sortie dans la ligne ci%
. Tout mais c'est parfait!Si vous ne trouvez pas la "bonne" façon de procéder, vous pouvez toujours fabriquer la vôtre!
La fonction bash suivante vous indiquera si vous êtes en ligne (sur Internet) ou non.
Il vous suffirait d'écrire un script qui l'appelle (en boucle puis s'endort) et enregistre la dernière date et heure dans un fichier (écrasement, il n'a donc que la dernière valeur).
Vous devez ajouter du code à la boucle pour qu'elle vérifie dès son premier appel et se connecte (afin que votre état initial soit correctement défini).
Après cela, vous ne vous connecterez à nouveau que lorsque l'état se déconnectera pour la première fois et lorsqu'il se connectera pour la première fois après avoir été déconnecté. Il est plus facile de coder que d'expliquer. ;)
La précision serait limitée par la durée pendant laquelle un délai (sommeil) que vous utilisez dans la boucle (pour l'empêcher d'être une boucle très serrée qui pourrait consommer trop de ressources système). ou lorsqu'il n'est pas en cours d'exécution.
Le script lui-même peut être démarré (en tant que tâche d'arrière-plan (
&
à la fin de l'invocation), éventuellement avec unnohup
pour le continuer à fonctionner si son processus parent se termine) lorsque votre utilisateur se connecte en l'exécutant à partir de votre fichier $ HOME / .profile, le démarrer avec votre utilitaire de démarrage automatique du bureau (KDE ou Gnome), à partir d'un travail cron qui vérifie périodiquement s'il n'est pas déjà en cours d'exécution, ou même à partir du système de démarrage que vous avez (init / systemd / etc., si vous en savez assez pour le faire cette.)Lorsque vous ne trouvez pas quelque chose comme ça qui fait exactement ce que vous voulez, il n'est souvent pas trop difficile d'écrire votre propre script pour le faire et de l'exécuter comme un démon en arrière-plan.
Il est préférable de l'exécuter à partir d'un compte utilisateur normal si possible - à moins que vous ne le codiez dans un langage robuste comme C ou Python - car les scripts shell s'exécutant avec les privilèges root posent souvent des risques de sécurité.
Cette approche a un autre problème. Parfois, un ping expirera, vous donnant un faux statut hors ligne.
J'ai un script complet, offline_alert , qui fait à peu près le contraire de ce que vous voulez - m'avertit lorsque je me déconnecte - mais le code peut s'avérer utile. Il a une meilleure fonction hors ligne qui tente de réduire les faux positifs des délais d'attente de ping.
la source
Une façon de vérifier tout journal de service / démon qui relaie sur Internet pour fonctionner. Par exemple, les mises à jour NTP (Network Time Protocol).
Voir
dpkg -L ntpdate
pour les crochets d'état du réseauEh bien, comme j'ai vérifié son journal pour le bureau Ubuntu, sa mise à jour s'exécute chaque fois que le réseau est en place et continue d'essayer après un court délai si la dernière mise à jour a échoué. Il se connecte
ntp.ubuntu.com
.(Remarque, j'ai ajouté la première colonne dans la sortie pour mes commentaires)
Je confirme qu'il est installé par défaut pour les éditions de bureau et de serveur Ubuntu 14.04 LTS 64Bit.
Je l'ai essayé dans VM, il ne montre que le temps qu'il se connecte ou se reconnecte (avec Internet disponible). Pas ce que vous voulez (la dernière fois que vous avez été connecté)
Remarque, syslog est un journal de rotation, si vous souhaitez rechercher tous les journaux, même les anciens compressés, utilisez
zgrep
la source
ntpdate
est installé par défaut mais pasntpd
/openntpd
daemon / service qui vient dans des packages séparés. Pour vérifier que le changement d'heure et de date est incorrect, déconnectez-vous puis reconnectez-vous.ntpdate
pourrait être utilisé aveccron
pour mettre à jour périodiquement le temps, il aura les mêmes résultats que l'exécution d'un service (ntpd / openntpd). Mais vous recherchez une configuration par défaut et aucun réglage supplémentaire, non?