Shell编程之用While简单写个守护进程
2023-03-07 09:50:10 时间
本文转载自微信公众号「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服务正常运行中... ## 我们发现时间打印的是第一次的时间
- ……
在上面的时间戳打印时,我们发现打印的时间并没有变化,一直是第一次打印的时间。怎么解决这个问题?简单,将时间戳命令变成函数就行了,将后面的《函数》小节学完同学们自己就能解决这个问题。
相关文章
- PyQt5编程扩展 3.1 自定义信号
- 2022 全球网络黑产常用攻击方法 Top 10
- 如何使用S3cret Scanner搜索公共S3 Bucket中的敏感信息
- NX防护机制以及最基本shellcode
- 【教程】Ubuntu清理系统垃圾
- 预测:2023 年值得关注的网络安全趋势
- 如何使用Autobloody自动利用BloodHound显示的活动目录提权路径
- Trapcode Suite 15 for Mac(AE红巨星粒子套装插件)
- 【教程】百度网盘小程序如何获取真实的链接和提取码
- 体验了一下 ChatGPT,连连竖大拇指
- 赶紧自查,Citrix数千台服务器存在严重安全风险
- 可落地的安全要求,关基保护又出新规 | FreeBuf咨询解读
- 如何使用NetLlix通过不同的网络协议模拟和测试数据过滤
- 手把手教你将Eureka升级Nacos注册中心
- 如何灵活的更改微服务容器运行时的堆内存大小及环境变量
- 加密货币矿池 BTC.com 数字资产被盗,损失 300 万美金
- 开心档之Bootstrap4 信息提示框
- 开心档之Bootstrap4 徽章(Badges)
- 实战分享 | 金融数据采集报送平台实践
- 如何使用Codecepticon对C#、VBA宏和PowerShell源代码进行混淆处理