Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何以编程方式检查连接?_Linux_Networking_Ubuntu_Scripting - Fatal编程技术网

Linux 如何以编程方式检查连接?

Linux 如何以编程方式检查连接?,linux,networking,ubuntu,scripting,Linux,Networking,Ubuntu,Scripting,在Linux(Ubuntu)中,我想通过编程检查是否有Internet连接(或者是否连接了eth0) 我这样做是因为我正在编写一个程序,它需要在一个极易失去连接的系统上建立网络连接 所以我在想也许我可以定期运行一个脚本来检查 你能给我一些好的建议吗?/sbin/ifconfig将是一个很好的脚本“获取适配器状态”命令 cron将是执行脚本的最佳方式。下面是一个快速脚本,它将实现您想要的: EMAIL=youremail@something.com ping -c 5 8.8.8.8 >&g

在Linux(Ubuntu)中,我想通过编程检查是否有Internet连接(或者是否连接了eth0)

我这样做是因为我正在编写一个程序,它需要在一个极易失去连接的系统上建立网络连接

所以我在想也许我可以定期运行一个脚本来检查


你能给我一些好的建议吗?

/sbin/ifconfig
将是一个很好的脚本“获取适配器状态”命令


cron
将是执行脚本的最佳方式。

下面是一个快速脚本,它将实现您想要的:

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 Google dns服务器是为了确保您已连接,并以某种方式向您发送电子邮件。当然,只有在您的网络上有本地电子邮件服务器的情况下,失败时的电子邮件部分才会起作用。

我还建议
ping
或者
wget
某个远程服务器(最好是您要连接的服务器)。网络可以在本地校园内正常工作,但在洲际连接上却不能正常工作(例如,因为一些电缆被切断)。

您可以使用cron根据间隔执行脚本,关于检查连接,您可以使用ping或ifconfig的结果来确定连接是否正常,在这个帖子上有很多这样的建议,这让我很吃惊:)我也在考虑使用ping,但是使用计数为1,并且不发送电子邮件,因为它可以在本地邮件队列中积累大量电子邮件。请注意,使用google服务器可能会违反其使用条款(对此不确定),因此最好使用您自己的服务器。我使用5来避免捕捉到可能超出您控制的小漏洞。如果连接更为关键,1就可以了。我还将电子邮件作为运行流程的一个示例。什么都可以。可能是失败时的ifup eth0。不知道谷歌TOS,只是一个很容易点击的公共IP。