写一个shell脚本,要去使用free指令,获取空闲内存和总内存大小并计算使用内存百分比
时间: 2024-03-13 21:46:46 浏览: 282
好的,以下是一个获取内存使用率的shell脚本:
```bash
#!/bin/bash
# 获取总内存大小和可用内存大小
total_mem=$(free | awk 'NR==2{print $2}')
free_mem=$(free | awk 'NR==2{print $4}')
# 计算内存使用率
used_mem=$(($total_mem-$free_mem))
used_percent=$(echo "scale=2; $used_mem/$total_mem*100" | bc)
echo "总内存大小:$total_mem KB"
echo "可用内存大小:$free_mem KB"
echo "内存使用率:$used_percent%"
```
运行脚本后会输出总内存大小、可用内存大小和内存使用率。注意,这里使用了`free`指令,因此需要在Linux系统中运行。
相关问题
请提供一个示例脚本,该脚本能监控Linux服务器的CPU、内存和磁盘使用情况,并在超出设定阈值时,通过shell脚本实现将报警信息自动发送到钉钉和企业微信的通知。
根据你的需求,我推荐参考《Linux服务器性能监控脚本:自动发送内存/CPU/磁盘警报至钉钉、企业微信》。这份资源提供了一个完整的监控脚本解决方案,适用于需要对服务器状态进行自动化监控和报警的场景。
参考资源链接:[Linux服务器性能监控脚本:自动发送内存/CPU/磁盘警报至钉钉、企业微信](https://wenku.csdn.net/doc/1rpq5w0375?spm=1055.2569.3001.10343)
首先,脚本使用`vmstat`命令来监控CPU使用情况,并将输出中的空闲CPU百分比与60%的阈值进行比较。如果CPU使用率超过60%,则认为需要报警。
接着,脚本通过检查`free -m`命令的输出来监控内存使用情况。如果剩余内存量少于2048MB,脚本将生成一个报警。
对于磁盘使用情况的监控,脚本使用`df -h`命令,并将每个分区的使用率与80%的阈值进行比较。如果任何分区的使用率超过80%,则会触发报警。
为了将报警信息发送到钉钉和企业微信,脚本使用了各自的API。你需要在钉钉和企业微信平台上创建相应的机器人,并获取到用于API调用的token。
最后,脚本会将每次检查的时间戳和结果记录到日志文件中,以便进行后续的审查和分析。通过定时任务(如cron),可以周期性地执行这个脚本,实现持续的监控。
以下是一个脚本的简化示例,提供基本的逻辑结构和命令(具体实现细节和错误处理需根据实际情况添加):
```bash
#!/bin/bash
# 获取系统性能数据
cpu_usage=$(vmstat 1 1 | awk '/^all/ {print 100 - $NF}')
mem_usage=$(free -m | awk 'NR==2 {printf
参考资源链接:[Linux服务器性能监控脚本:自动发送内存/CPU/磁盘警报至钉钉、企业微信](https://wenku.csdn.net/doc/1rpq5w0375?spm=1055.2569.3001.10343)
阅读全文