Ich habe eine Ubuntu-Maschine und eine Debian-Maschine.
Auf beiden möchte ich sehen können, wie lange eine Netzwerkschnittstelle verbunden ist. (Das heißt, mit einem Netzwerk verbunden, das eine IP usw. erhält. Nicht der physische Zustand eines Kabels). Betriebszeit in Sekunden oder Datum + Uhrzeit seit der letzten Änderung oder Ähnlichem.
Bis jetzt habe ich ein kleines Skript geschrieben, um die Aufgabe zu erledigen, aber es scheint, dass es einen allgemeineren Weg geben sollte, dies zu überprüfen. Ein Programm oder etwas in / proc oder so.
Mein Skript:
#!/bin/bash
if [ -f /etc/os-release ]; then
if TMP=$(grep -i 'ubuntu' /etc/os-release); then
# we are on ubuntu
for i in $(/bin/ls -1 /var/log/syslog* | sort -r); do
TMP=$(zgrep '(eth0): device state change: ip-config -> activated' "$i" | tail -1 | sed "s/ "$(hostname)"/*/")
done
WHEN=$(echo "$TMP" | cut -f1 -d '*')
SEC=$(echo "$(date +%s) - $(date -d "$WHEN" +%s)" | bc)
echo "Last link up: $WHEN ($SEC seconds ago)."
elif TMP=$(grep -i 'debian' /etc/os-release); then
# we are on debian
TMP=$(grep 'eth0: link up' /var/log/syslog* | tail -1 | cut -f2- -d':' | sed "s/ "$(uname -n)" kernel:/*/")
WHEN=$(echo "$TMP" | cut -f1 -d '*')
SEC=$(echo "$(date +%s) - $(date -d "$WHEN" +%s)" | bc)
echo "Last link up: $WHEN ($SEC seconds ago)."
fi
else
echo "File /etc/os-release not found."
fi
ip monitor
(unter anderem) zu verwenden, es könnte einen Blick wert sein.
/etc/dhcp3/dhclient-enter-hooks.d/
könnte auch das Einfügen eines Skripts eine Option sein. Aber ich finde nicht genug Informationen, um zu sagen, wie genau es funktioniert.