📜  linux 终端检查互联网连接 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:17:23.454000             🧑  作者: Mango

Linux 终端检查互联网连接 - Shell-Bash

当我们需要检查本机与互联网的连接是否正常时,可以在Linux终端上通过使用一些命令和工具获取该信息。本文章将介绍一些常见的方法以及如何通过 Shell-Bash 脚本定期检查网络连接。

ping 命令

ping 命令会发送一个 ICMP ECHO_REQUEST 到特定的 IP 地址,如果该地址可达,则返回 PONG 响应。简单地说, ping 命令可以用来测试目的地址是否能够访问。下面是一个简单的 ping 命令:

ping -c 3 www.baidu.com

其中,-c 参数用于限制 ping 命令发送请求的数量。上面命令会发送 3 次请求,并在终端上显示结果。

使用 ping 命令可以帮助我们诊断网络连接的问题。如果我们发现不能够正确地 ping 到某个地址,则可能有网络故障。

curl 和 wget 命令

curlwget 命令在 Linux 中用于从互联网上下载文件和资源。这些命令在帮助我们检查网络连接方面也是非常有用的。

下面的命令会下载一个测试网址的 index.html 页面:

curl -o /dev/null -s -w "%{http_code}\n" http://www.baidu.com

其中, -o 参数用于将下载的文件内容输出到 /dev/null (黑洞),-s 参数表示静默模式,不输出任何信息, -w 参数指定输出格式,以 HTTP 状态码的形式返回。该命令会向百度的网站发起一个 HTTP 请求,并返回该网站的 HTTP 状态码。常见的 HTTP 状态码有 200、404、500 等。

使用 curlwget 命令可以帮助我们发现比如防火墙、代理等问题。

Shell-Bash 定期检查网络连接

现在,我们可以将上述命令整合到 Shell-Bash 脚本中,以定期检查网络连接。

以下是一个示例脚本,用于检查网络连接并以邮件形式通知您:

#!/bin/bash

HOSTS="www.baidu.com 192.168.1.1"
SUBJECT="网络连接测试"

for host in $HOSTS
do
  ping -c 1 $host > /dev/null
  if [ $? -ne 0 ]; then
    echo "$host 无法访问。请注意!" | mail -s "$SUBJECT" your.email@example.com
  fi
done

exit 0

该脚本使用 ping 命令检查指定的主机是否可以被访问。如果主机不可达,则使用 mail 命令向您的电子邮件发送一条消息。通过将该脚本添加到 cron,您可以定期检查您的网络连接,以确保运行良好。

以上就是本文介绍的 Linux 终端检查互联网连接的方法和 Shell-Bash 定期检查网络连接的示例。希望本文对您有所帮助。