Linux如何检测服务器是否连接着网络的代码案例


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

这篇文章主要介绍了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如何检测服务器是否连接着网络的代码案例的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

Linux实现下载文件到本地

Linux协程是什么

Linux中怎么查看端口是否打开

Linux中程序调试的方法有哪些

Linux中的重定向全面解析

Linux登录不上

Linux中怎么打开一个文件并保存

Linux无法输入中文

Linux命令之rpm安装命令的实例代码详解

Linux查看系统进程

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



打赏

取消

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

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

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

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

评论

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