使用centos系统编写一个磁盘占用到百分之八十自动告警的shell脚本
时间: 2024-04-30 15:17:36 浏览: 141
好的,以下是一个实现磁盘占用到80%自动告警的shell脚本:
```bash
#!/bin/bash
# 获取磁盘使用情况
disk_usage=$(df -h / | awk 'NR==2{print $5}')
# 获取当前时间
current_time=$(date +"%Y-%m-%d %H:%M:%S")
# 判断磁盘使用情况是否超过80%
if [[ "${disk_usage//\%}" -ge 80 ]]; then
# 发送告警邮件
echo "磁盘使用情况已超过80%,请及时处理!" | mail -s "磁盘告警" your_email@example.com
# 记录告警日志
echo "${current_time} 磁盘使用情况已超过80%,已发送告警邮件。" >> /var/log/disk_alert.log
fi
```
脚本说明:
- 使用 `df -h /` 命令获取根目录的磁盘使用情况,并使用 `awk` 提取出使用百分比。
- 使用 `${disk_usage//\%}` 去掉百分号,再使用 `-ge` 判断是否超过80%。
- 如果超过80%,则使用 `mail` 命令发送告警邮件,并使用 `>>` 追加记录告警日志到 `/var/log/disk_alert.log` 文件中。
相关问题
请帮我写一个centos7系统获取磁盘使用率,磁盘IO及cpu负载、网络IO使用率的shell脚本
好的,以下是获取磁盘使用率、磁盘IO、CPU负载和网络IO使用率的shell脚本:
```bash
#!/bin/bash
# 获取磁盘使用率
df -h
# 获取磁盘IO
iostat -x 1
# 获取CPU负载
top -b -n1 | grep "load average"
# 获取网络IO使用率
sar -n DEV 1 1
```
使用方法:
1. 将以上代码复制到一个名为 `monitor.sh` 的文件中。
2. 给文件添加可执行权限:`chmod +x monitor.sh`。
3. 在终端中执行:`./monitor.sh`。
以上脚本会依次输出磁盘使用率、磁盘IO、CPU负载和网络IO使用率的信息。如果想要定期获取这些信息,可以将脚本加入到定时任务中执行。
编写shell 脚本 关于centos linux系统资源详细的实时监控
你可以使用以下的脚本来实时监控CentOS Linux系统的资源使用情况:
```bash
#!/bin/bash
while true; do
clear
echo "CPU使用情况:"
top -b -n 1 | grep "Cpu(s)" | awk '{print " 用户使用: " $2 "% 系统使用: " $4 "% 空闲: " $8 "%"}'
echo ""
echo "内存使用情况:"
free -m | grep "Mem" | awk '{print " 总内存: " $2 " MB 已用内存: " $3 " MB 空闲内存: " $4 " MB"}'
echo ""
echo "磁盘使用情况:"
df -h | grep -E '/dev/sda|Filesystem' | awk '{print " 文件系统: " $1 " 已用: " $3 " 可用: " $4}'
echo ""
echo "网络连接情况:"
netstat -ant | awk '{print $6}' | sort | uniq -c | awk '{print " " $2 ": " $1 " 个连接"}'
echo ""
sleep 5 # 等待5秒钟后再次刷新数据
done
```
将上述脚本保存为 `resource_monitor.sh` 文件,并赋予执行权限:
```bash
chmod +x resource_monitor.sh
```
然后运行脚本:
```bash
./resource_monitor.sh
```
此脚本将会每隔5秒刷新一次系统资源的使用情况,包括CPU、内存、磁盘和网络连接情况。你可以按 `Ctrl+C` 来停止监控。
阅读全文