Shell脚本监控CPU利用率平滑重启进程

Process

#! /bin/bash

counter=0

utilization=`top -n 2 | fgrep "Cpu(s)" | tail -n 1 | awk '{printf "%s", $2}'`

echo $utilization

if [ `echo "$utilization > 90" | bc` -eq 1 ]; then
    ((counter++))
fi

echo $counter

sleep 30

if [ $counter -eq 1 ]; then
	utilization=`top -n 2 | fgrep "Cpu(s)" | tail -n 1 | awk '{printf "%s", $2}'`

    echo $utilization

	if [ `echo "$utilization > 90" | bc` -eq 1 ]; then
	    kill -USR2 `cat /opt/php/php71/var/run/php-fpm.pid`
	fi
fi

Conclusion

不同的版本,对应的文件路径会有些出入,以上仅供参考,请君灵活处理。

References

Linux shell 得到 CPU 使用率

linux top命令详解

tail 命令

linux管道pipe详解

Linux awk 命令

Linux —— Shell编程之变量赋值和引用

shell中的if语句

shell中的if语句

Shell变量:Shell变量的定义、赋值和删除

Linux bc 命令

转载本文,请注明出处、作者

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用Linux系统自带的命令"top"来监控CPU使用率。也可以使用"ps"命令和"grep"命令结合来监控某个进程CPU使用率。另外也可以使用"sar"命令来查看系统整体的CPU使用率。 也可以使用 shell 脚本监控 CPU 使用率。可以使用如下代码: ``` #!/bin/bash while true do CPU=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}') echo "CPU Usage: $CPU%" sleep 5 done ``` 这个脚本每5秒钟执行一次,查询一次 CPU 使用率并输出。 ### 回答2: Shell脚本可以用于监控CPU使用率,下面是一些方法和步骤: 1. 使用命令top或者ps来获取CPU使用率信息。可以利用awk命令从top或ps的输出结果中提取CPU使用率数据。 2. 编写一个while循环,在循环中调用上述命令来获取CPU使用率。 3. 判断CPU使用率是否超过了某个阈值。如果超过了阈值,则可以执行相应的操作,比如发送警报邮件或者杀死某个进程。 4. 可以使用crontab来调度该脚本,定期运行以保持对CPU使用率的监控。 5. 还可以使用Linux内核提供的proc文件系统来获取CPU使用率信息。通过读取/proc/stat文件,可以获取CPU的整体使用率信息。另外,通过读取/proc/[PID]/stat文件,可以获取某个进程CPU使用率。 6. 将监控脚本进行优化,比如添加日志记录和定期清理。 ### 回答3: Shell脚本是一种强大的开发工具,可以用来实现各种功能,如文件处理、系统管理等。其中一种常见的功能是监控CPU使用率。 为了实现这个功能,我们需要编写一个Shell脚本,在其中搭建一个循环,以不断检测CPU使用率。这个循环需要监控CPU的两个关键指标:CPU使用时间(user)和空闲时间(idle)。我们可以通过读取/proc/stat文件来获取这些信息。 读取/proc/stat文件后,我们需要将CPU使用时间和空闲时间保存到变量中,每隔一段时间重新读取这个文件,然后计算CPU使用率,并将结果输出到屏幕或日志文件中。具体来说,我们可以把两次读取的值相减,然后将差值除以总时间再乘以100,得出CPU使用率的百分比。 另外,我们可以为CPU使用率设置一个阈值,当CPU使用率超过这个阈值时,我们可以触发一些动作,比如发出警报或执行一些处理程序。 需要注意的是,每个系统的/proc/stat文件格式可能不完全相同,因此在编写脚本时需要对不同系统进行适当的调整。另外,定时循环和计算可能会占用一些CPU资源,因此需要谨慎设置循环间隔时间和阈值。 总之,Shell脚本是一种非常方便的工具,可以用来实现各种系统监控功能。通过编写一个简单的脚本,我们可以轻松地监控CPU使用率,并在需要时进行相应的处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值