编写shell脚本,每五分钟检查网络是否通畅和磁盘占有率

#!/bin/bash
timeFun(){
url="www.baidu.com"
ping -c 1 ${url} > ./timeJudge.log
#ping百度的网址,并将它保存在当前目录下的timeJudge.log日志中
judge
=`grep -c time ./timeJudge.log`
#通过grep命令判断之前保留下来的ping百度日志中是否有time字符,
#因为如果能ping通的话,日志保留的记录中会有time字符,ping不通就不会有
if [ ${judge} -gt 0 ]; then
#-gt 命令用于检测左边的数是否大于右边的,如果是,则返回 true。 echo
"ping ${url} 通,网络通畅" else echo "ping ${url} 不通,网络不通畅" fi }
#创建函数用于判断网络是否通畅
while true do timeFun >> ./shell.log #调用函数并将执行结果以追加的形式重定向到shell.log日志中
test
=`df -h` echo "磁盘占有情况如下:${test}" >> ./shell.log
#执行检测磁盘的df命令,并重定向输出到shell.log日志中 sleep
300
#五分钟(300s)后重新执行脚本
done

将上面的脚本以nohup命令运行

nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。

nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

语法格式

 nohup Command [ Arg  ] [ & ]

参数说明:

Command:要执行的命令。

Arg:一些参数,可以指定输出文件。

&:让命令在后台执行,终端退出后命令仍旧执行。

以下命令在后台执行 root 目录下的 runoob.sh 脚本:

nohup /root/runoob.sh &

在终端如果看到以下输出说明运行成功:

appending output to nohup.out


除了这种形式外,还可以crontab的形式实现定时任务,感兴趣可以自己去搜搜看

posted @ 2021-09-05 23:15  汉化  阅读(404)  评论(0)    收藏  举报