帮我写一个linux shell脚本,需求是检测磁盘空间,当磁盘空间超过百分之八十时,自动删除当前目录下修改日期最早的五个文件夹
时间: 2023-03-13 19:31:11 浏览: 95
这里是一段示例代码:# 检测磁盘空间
used_space=`df -h | awk '{print $5}' | grep % | sed 's/%//g'`# 删除当前目录下修改日期最早的五个文件夹
if [ $used_space -gt 80 ]; then
rm -rf `ls -tl | head -n 5 | awk '{print $9}'`
fi
相关问题
使用centos系统编写一个磁盘占用到百分之八十自动告警的shell脚本
好的,以下是一个实现磁盘占用到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` 文件中。
使用shell编写一个监控主机内存cpu磁盘空间大小且剩余空间都不得超过百分之十
可以使用以下脚本来监控主机内存、CPU、磁盘空间的使用情况,并检查剩余空间是否超过百分之十:
#!/bin/bash
# Check memory usage
mem_usage=$(free | awk 'NR==2{printf "%.2f%%", $3/$2*100}')
# Check CPU usage
cpu_usage=$(top -bn1 | grep load | awk '{printf "%.2f%%", $(NF-2)}')
# Check disk usage and free space
disk_usage=$(df -h / | awk '{print $5}' | tail -n 1 | sed 's/%//')
disk_free=$(df -h / | awk '{print $4}' | tail -n 1)
# Check if disk free space is less than 10%
if [ $disk_usage -ge 90 ] || [ ${disk_free%G} -lt 10 ]; then
echo "Disk usage or free space is too low!"
exit 1
fi
echo "Memory usage: $mem_usage"
echo "CPU usage: $cpu_usage"
echo "Disk usage: $disk_usage%"
echo "Disk free space: $disk_free"
exit 0
注意,这个脚本只检查根目录的磁盘空间使用情况,如果你需要监控其它磁盘分区,需要修改脚本中的df命令。