우분투 머신과 데비안 머신이 있습니다.
둘 다 네트워크 인터페이스가 얼마나 오랫동안 연결되어 있는지보고 싶습니다. (즉, 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/
것도 옵션 일 수 있습니다. 그러나 나는 그것이 정확히 어떻게 작동하는지 말할 충분한 정보를 찾지 못했습니다.