
本文转载自微信公众号「Linux常用命令」,简单进程作者妖生。守护转载本文请联系Linux常用命令公众号。简单进程
本节内容还是守护循环语法,第二个循环关键字:while。简单进程
while循环经常用于永久定时器,守护设置一个变量条件为真,简单进程则while中的守护命令可以永久执行下去。语法格式如下:
while condition<TRUE> ## condition为true,源码下载简单进程则循环执行下去 do command ## 满足条件,守护则执行命令 done 示例如下:
[root@yaomm208 ~]# vi 004-while.sh ## 编辑004-while循环脚本 # !/bin/bash # filename:004-while.sh # author:linuxido.com LOCAL_TIME=$(date +"%Y-%m-%d %H:%M:%S") # 获取时间并格式化 while true do sshd_count=`ps -ef | grep ssh | grep -v color | wc -l` # 查看有多少ssh服务 if [ $sshd_count -lt 1 ] then echo $LOCAL_TIME 没有找到ssh服务,简单进程重启该服务 systemctl start sshd else echo $LOCAL_TIME ssh服务正常运行中... fi sleep 5 # sleep,守护Shell关键词。简单进程数字5表示沉睡5秒,守护每隔5秒检查一次 done 运行脚本:
[root@yaomm208 ~]# sh 004-while.sh ## 运行004脚本 2021-06-06 09:52:23 ssh服务正常运行中... ## 进入else分支,简单进程 2021-06-06 09:52:23 ssh服务正常运行中... ## 我们发现时间打印的是第一次的时间 …… 在上面的高防服务器时间戳打印时,我们发现打印的时间并没有变化,一直是第一次打印的时间。怎么解决这个问题?简单,将时间戳命令变成函数就行了,将后面的《函数》小节学完同学们自己就能解决这个问题。源码库