帮我写一个计算内存使用率的shell脚本
时间: 2023-07-07 22:38:31 浏览: 83
好的,以下是一个简单的计算内存使用率的shell脚本:
```bash
#!/bin/bash
# 获取总内存大小
total_mem=$(grep MemTotal /proc/meminfo | awk '{print $2}')
# 获取已使用内存大小
used_mem=$(grep MemAvailable /proc/meminfo | awk '{print $2}')
# 计算内存使用率
mem_usage=$(echo "scale=2; ($total_mem - $used_mem) / $total_mem * 100" | bc)
echo "Memory usage: $mem_usage%"
```
这个脚本首先通过读取 `/proc/meminfo` 文件来获取系统内存的信息,然后使用 `awk` 命令提取出需要的数据。最后使用 `bc` 命令进行浮点数运算,计算出内存使用率,并输出结果。
相关问题
帮我写一个shell脚本,用于监控系统内存使用情况
好的,以下是一个简单的Shell脚本,用于监控系统内存使用情况:
```
#!/bin/bash
# 获取内存使用率
mem_used=$(free | awk 'NR==2{print $3/$2*100}')
# 判断内存使用率是否超过阈值(这里设置为80%)
if [ $mem_used -gt 80 ]
then
echo "系统内存使用率超过阈值,当前使用率为 $mem_used%。请及时清理内存空间!"
fi
```
这个脚本的作用是获取系统的内存使用情况,并判断是否超过了设定的阈值(这里设置为80%)。如果内存使用率超过了阈值,就会输出一条警告信息。你可以将这个脚本保存为一个文件,比如`mem_monitor.sh`,然后在命令行中执行`sh mem_monitor.sh`来运行它。
用shell写一个监控磁盘使用率的脚本
以下是一个简单的Shell脚本,可以监控磁盘使用率:
```
#!/bin/bash
# 设置监控磁盘的路径和阈值
DISK_PATH="/dev/sda1"
THRESHOLD="90"
while true
do
# 获取磁盘使用率
DISK_USAGE=$(df -h | grep $DISK_PATH | awk '{print $5}' | sed 's/%//')
# 判断是否超过阈值
if [ $DISK_USAGE -gt $THRESHOLD ]
then
echo "磁盘使用率已超过阈值,当前使用率为 $DISK_USAGE%"
# 发送邮件或其他提醒方式
# ...
sleep 3600 # 等待1小时再进行下一次检查
else
sleep 60 # 等待1分钟再进行下一次检查
fi
done
```
该脚本使用了一个while循环,不断地获取磁盘使用率并与设定的阈值进行比较。如果磁盘使用率超过阈值,则可以通过邮件或其他提醒方式发送警告信息。脚本每次检查之间都会有一个固定的等待时间,以避免过于频繁地检查磁盘使用率。