Edu*_*rdo 4 scripts internet monitoring router
我希望每次我的路由器失去互联网连接时都会报告它。
我想让我的 Ubuntu 系统每次当路由器的系统日志显示消息“以太网链接关闭”时给我发送一封电子邮件。
那可能吗?我相信我必须写一个脚本,对吗?
您可以在 cron 工作中尝试类似的操作
#!/bin/bash
wget -q --tries=10 --timeout=20 --spider http://google.com
dt=$(date +%Y%m%d_%H%M%S)
if [[ $? -eq 0 ]]; then
echo "$dt:Online"
else
echo "$dt:Offline"
mail -s "Internet connection lost on $(hostname) at $(date)"
fi
Run Code Online (Sandbox Code Playgroud)
我个人有一个存储连接质量报告的脚本(取决于您可以从 apt-get install speedtest-cli
#!/bin/bash
#***************************************
# FOR CRONTAB
# */10 * * * * /location/of/my-internet-test.sh
#***************************************
LOG_FILE="/var/log/internet_test_$(hostname).csv"
mkdir -p $(dirname $LOG_FILE)
DT=$(date '+%Y-%m-%dT%H:%M:%S')
SPEED_TEST_RES=$(speedtest-cli --simple 2>/dev/null)
#set -o xtrace
DL=$(echo $SPEED_TEST_RES | awk '{print $5}')
UL=$(echo $SPEED_TEST_RES | awk '{print $8}')
PING=$(echo $SPEED_TEST_RES | awk '{print $2}')
#set -x
#echo "Ping: '$PING' DL:'${DL}' UL:'${UL}'"
[[ -z "$DL" ]] && { DL=0; UL=0; PING=0; }
echo "$DT,$PING,$DL,$UL" >> $LOG_FILE
Run Code Online (Sandbox Code Playgroud)
请注意,从 cron 定期调用脚本比执行循环更好
小智 5
我很欣赏这是一个老问题,但我发现它正在寻找解决方案,所以我最终写了一个。它是一个 shell 脚本,用于检查互联网连接,并记录任何中断以及重新连接的链接速度。随意抓住它:
https://github.com/TristanBrotherton/netcheck