Linux如何检测服务器网络状况


本文摘自PHP中文网,作者Y2J,侵删。

这篇文章主要介绍了Linux 检测服务器是否连接着网络的相关资料,需要的朋友可以参考下

Linux 检测服务器是否连接着网络

摘要: 每隔5分钟检测一次服务器是否连接着网络,如果三次检测都没有网络?则自动关机! 主要使用场景: 由于自己有一台服务器放在偏远的老家,有可能会遇到停电导致断网的问题,并且停电后UPS使用时间也有限制, 因此设计此脚本为了解决停电的时候服务器突然断电引起的各种问题,当停电后网络也就不通了,此时需要自动关闭服务器. 当然,来电后需要手动启动服务器!!!


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

#!/bin/bash

 

# 检测服务器是否连接着网络,如果网络不通 则 3次后 关机

# crontab -e

# */5 * * * * ./check.sh

 

echo "Starting test network was clear..."

 

if test -e ./checkInfo

 then

 echo "CheckInfo File Exist..."

else

 cat /dev/null > ./checkInfo

fi

 

last_res=`head -1 ./checkInfo`

 

checkInternet(){

 ping_res=1

 

 for url in "8.8.8.8" "61.139.2.69" "114.114.114.114" "168.95.1.1" "223.5.5.5" "180.76.76.76"

 do

 echo "PING ${url}"

 

 ping=`ping -c 3 ${url}|awk 'NR==7 {print $4}'`

 

 if [ ${ping} -eq 0 ]

  then

  ping_res=1

  else

  ping_res=2

 fi

 

 if [ ${ping_res} -eq 2 ]

  then

  break

 fi

 done

 

 return ${ping_res}

}

 

checkInternet

 

result="$?"

 

if [ ${result} -eq 1 ]

 then

 if [ "${last_res}" = "1" ]

  then

  echo "2" > ./checkInfo

 elif [ "${last_res}" = "2" ]

  then

  cat /dev/null > ./checkInfo

  init 0

  else

  echo "1" > ./checkInfo

 fi

 else

 cat /dev/null > ./checkInfo

fi

【相关推荐】

阅读剩余部分

相关阅读 >>

Linux中oracle中文乱码解决方法

Linux如何查看系统是32位还是64位

chattr命令的用法

Linux系统中的755权限是什么意思

如何在Linux上编译和运行c和c++程序

Linux查看文件是否存在的方法

不支持删除默认版本的情况下如何删除指定实例启动模板的一个版本

Linux主要拿来干什么的

Linux命令--scp的使用

Linux系统64位与32位有什么区别

更多相关阅读请进入《Linux》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...