请编写shell程序,监控Linux下的内存剩余空间和磁盘剩余容量,3秒查一次,将查询到的内存和磁盘剩余空间记录到文档中(后期可以用来排查是否有内存泄漏等问题),当内存小于500M磁盘容量磁盘空间小于5G时报警
时间: 2023-12-24 22:04:26 浏览: 23
以下是一个简单的shell程序,可以实现监控Linux下的内存剩余空间和磁盘剩余容量,并记录到文档中,并在内存和磁盘空间低于阈值时报警:
```shell
#!/bin/bash
while true
do
# 获取内存剩余空间
mem_free=$(free -m | awk '/^Mem:/{print $4}')
# 获取磁盘剩余容量
disk_free=$(df -h | awk '$NF=="/"{printf "%d", $4}')
# 记录到文档中
echo $(date +"%Y-%m-%d %H:%M:%S") mem_free:$mem_free disk_free:$disk_free >> monitor.log
# 判断是否需要报警
if [ $mem_free -lt 500 ] || [ $disk_free -lt 5 ]
then
echo "警告:内存剩余空间不足500M或磁盘剩余容量不足5G!"
fi
# 等待3秒
sleep 3
done
```
你可以将以上代码保存为一个.sh文件,然后在终端中运行。如果想让它在后台一直运行,可以使用nohup命令:
```
nohup ./monitor.sh &
```
这样就可以将输出重定向到nohup.out文件中,并且程序会一直在后台运行,直到手动停止。
相关问题
使用shell编写一个监控主机内存cpu磁盘空间大小且剩余空间都不得超过百分之十
可以使用以下脚本来监控主机内存、CPU和磁盘空间的使用情况:
```
#!/bin/bash
# 获取内存使用情况
mem_usage=$(free | awk 'NR==2{printf "%.2f%%", $3/$2*100}')
# 获取CPU使用情况
cpu_usage=$(top -bn1 | grep load | awk '{printf "%.2f%%", $(NF-2)}')
# 获取磁盘使用情况
disk_usage=$(df -h / | awk '{print $5}' | tail -n 1)
# 获取磁盘剩余空间
disk_free=$(df -h / | awk '{print $4}' | tail -n 1)
# 判断磁盘使用情况是否超过10%
if [ ${disk_usage%?} -gt 90 ] || [ ${disk_free%?} -lt 10 ]; then
echo "磁盘使用情况异常!"
else
echo "内存使用情况:$mem_usage"
echo "CPU使用情况:$cpu_usage"
echo "磁盘使用情况:$disk_usage"
echo "磁盘剩余空间:$disk_free"
fi
```
这个脚本会输出当前主机的内存、CPU和磁盘使用情况,如果磁盘使用情况超过了90%或者磁盘剩余空间不足10%,则会提示磁盘使用情况异常。
写一个linux查询内存、cpu、磁盘空间使用率的shell脚本
以下是一个简单的Linux查询内存、CPU、磁盘空间使用率的shell脚本:
```bash
#!/bin/bash
# 获取内存使用率
mem_total=$(free -m | awk 'NR==2{print $2}')
mem_used=$(free -m | awk 'NR==2{print $3}')
mem_usage=$((mem_used*100/mem_total))
echo "Memory Usage: ${mem_usage}%"
# 获取CPU使用率
cpu_usage=$(top -bn1 | grep load | awk '{printf "%.2f%%\n", $(NF-2)*100}')
echo "CPU Usage: ${cpu_usage}"
# 获取磁盘空间使用率
disk_usage=$(df -h | awk '$NF=="/"{printf "%s\n", $5}')
echo "Disk Usage: ${disk_usage}"
```
通过运行该脚本,将输出当前系统的内存、CPU、磁盘空间使用率。你可以将该脚本保存为文件并在需要时运行它。