在 Linux (Ubuntu) 中,我想以编程方式检查是否有 Internet 连接(或者是否连接了 eth0)。
我这样做是因为我正在编写一个程序,该程序需要在一个很容易失去连接的系统上进行网络连接。
所以我在想也许我可以定期运行一个脚本来检查。
你能给我好的建议吗?
在 Linux (Ubuntu) 中,我想以编程方式检查是否有 Internet 连接(或者是否连接了 eth0)。
我这样做是因为我正在编写一个程序,该程序需要在一个很容易失去连接的系统上进行网络连接。
所以我在想也许我可以定期运行一个脚本来检查。
你能给我好的建议吗?
这是一个可以完成您想要的快速脚本:
EMAIL=youremail@something.com
ping -c 5 8.8.8.8 >> /dev/null
if [ $? -eq 0 ]
then
echo "Able to reach internet!" | mail $EMAIL
else
echo "Unable to reach internet!" | mail $EMAIL
fi
显然,您可以根据您的目标将邮件更改为其他要执行的操作 编辑:解释一下,这会 ping googles dns 服务器以确保您已连接并以一种或另一种方式向您发送电子邮件。当然,只有当您的网络上有本地电子邮件服务器时,失败的电子邮件部分才会起作用。
/sbin/ifconfig
将是一个极好的脚本“获取适配器状态”命令。
cron
将是执行脚本的绝佳方式。
我还建议ping
或者可能是wget
某个远程服务器(最好是您要连接的服务器)。该网络可以在本地校园中很好地工作,但在洲际连接上效果不佳(例如,因为一些电缆已被切断)。