Saya memiliki mesin Ubuntu dan mesin Debian.
Pada keduanya saya ingin dapat melihat berapa lama antarmuka jaringan telah terhubung. (Yaitu, terhubung ke jaringan yang mendapatkan IP dll. Bukan keadaan fisik dari cabel). Waktu aktif dalam detik atau tanggal + waktu sejak perubahan terakhir atau yang serupa.
Sampai sekarang saya telah menulis skrip kecil untuk melakukan tugas tetapi tampaknya harus ada cara yang lebih umum untuk memeriksa ini. Suatu program atau sesuatu di / proc atau semacamnya.
Skrip saya:
#!/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
(antara lain), mungkin layak untuk dilihat.
/etc/dhcp3/dhclient-enter-hooks.d/
juga bisa menjadi pilihan. Tetapi saya tidak menemukan cukup informasi untuk mengatakan bagaimana tepatnya itu bekerja.