shell脚本 编写脚本,实时监控本机内存和硬盘剩余空间,剩余内存小于500M、根分区剩余空间小于1000M时,发送报警邮件给root管理员 (提示:如果提示找不到mail命令,请使用yum install mailx -y安装) (1)查看根分区剩余空间 df / (2)查看内存剩余空间 free (3)发送邮件 mail -s
时间: 2024-03-26 21:40:20 浏览: 16
"警告:内存或硬盘空间不足!" root < /dev/null
根据上述要求,可以编写如下脚本:
```
#!/bin/bash
while true
do
# 获取内存剩余空间
mem_free=$(free | awk 'NR==2{print $4}')
# 获取根分区剩余空间
disk_free=$(df / | awk 'NR==2{print $4}')
# 判断内存和硬盘空间是否不足
if [ $mem_free -lt 500000 -o $disk_free -lt 1000000 ]; then
# 发送邮件
echo "内存剩余空间为:$mem_free bytes,根分区剩余空间为:$disk_free bytes,请及时处理!" | mail -s "警告:内存或硬盘空间不足!" root < /dev/null
fi
# 每隔10秒钟检查一次
sleep 10
done
```
该脚本会不断地循环检查内存和硬盘空间,如果不足,则发送警告邮件给root管理员。请注意,该脚本需要以root用户身份运行,否则可能无法发送邮件。
相关问题
使用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命令。
shell脚本硬盘分区
Shell脚本是一种用于自动化任务和批处理的脚本语言,可以在Unix/Linux系统中使用。硬盘分区是将物理硬盘划分为多个逻辑部分的过程。
在Shell脚本中,你可以使用命令行工具如fdisk或parted来进行硬盘分区。下面是一个简单的示例:
1. 使用fdisk命令创建新的分区表:
```
fdisk /dev/sda
```
2. 在fdisk交互界面中,输入`n`创建一个新分区。
3. 选择主分区(Primary)还是扩展分区(Extended),并指定分区大小。
4. 输入`w`保存并退出fdisk。
5. 格式化新分区:
```
mkfs.ext4 /dev/sda1
```
以上只是一个基本的示例,实际操作可能会更复杂。你可以根据需要调整分区类型、大小和文件系统等参数。