ฉันมีเครื่อง Ubuntu และเครื่อง Debian
ในทั้งสองฉันต้องการที่จะสามารถดูว่าระยะเวลาที่เชื่อมต่อเครือข่ายเชื่อมต่อ (นั่นคือเชื่อมต่อกับเครือข่ายเพื่อรับ IP ฯลฯ ไม่ใช่สถานะทางกายภาพของ cabel) เวลาใช้งานในหน่วยวินาทีหรือวันที่ + เวลาตั้งแต่การเปลี่ยนแปลงครั้งล่าสุดหรือสิ่งอื่นที่คล้ายคลึงกัน
ณ ตอนนี้ฉันได้เขียนสคริปต์เล็กน้อยเพื่อทำงาน แต่ดูเหมือนว่าควรมีวิธีการตรวจสอบที่กว้างกว่านี้ โปรแกรมหรือบางสิ่งใน / proc หรือเช่น
สคริปต์ของฉัน:
#!/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
(เหนือสิ่งอื่นใด) มันอาจคุ้มค่ากับการดู
/etc/dhcp3/dhclient-enter-hooks.d/
อาจเป็นตัวเลือกก็ได้ แต่ฉันไม่พบข้อมูลเพียงพอที่จะบอกว่ามันทำงานอย่างไร