写一个监控linux服务器硬盘容量的脚本
时间: 2023-10-13 22:04:28 浏览: 43
以下是一个监控Linux服务器硬盘容量的脚本,可以定期检查硬盘容量并发送邮件通知管理员:
```
#!/bin/bash
# 设置发送邮件的相关参数
MAILTO="admin@example.com"
SUBJECT="硬盘容量警告"
BODY="硬盘容量不足,请及时处理!"
# 设置硬盘容量阈值,当使用率超过该值时发送邮件警告
THRESHOLD=90
# 获取硬盘使用率
DISK_USAGE=$(df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
echo $output | awk '{ print $1 }' | cut -d'%' -f1
done)
# 检查硬盘使用率是否超过阈值
if [ $DISK_USAGE -ge $THRESHOLD ]; then
# 发送邮件通知管理员
echo $BODY | mail -s $SUBJECT $MAILTO
fi
```
将该脚本保存为一个文件,例如 `monitor_disk_usage.sh`,并使用 `cron` 定期运行该脚本。例如,设置每天早上8点钟运行该脚本:
```
0 8 * * * /path/to/monitor_disk_usage.sh
```
这样就可以定期检查硬盘容量并发送邮件警告。
相关问题
帮我写一个监测多台linux服务器硬盘容量的脚本
好的,我可以为您提供一个基于Shell脚本的解决方案。
1. 首先,我们需要在每台Linux服务器上安装sshpass工具,这样才能在脚本中使用ssh连接到不同的服务器。安装命令如下:
```bash
sudo apt-get install sshpass
```
2. 创建一个名为check_disk.sh的Shell脚本,并将其保存在您选择的目录中。在脚本中,我们将使用ssh连接到每个服务器,并执行df命令以获取硬盘容量信息。以下是脚本的示例代码:
```bash
#!/bin/bash
# 定义服务器列表
servers=("server1" "server2" "server3")
# 循环遍历服务器列表
for server in "${servers[@]}"
do
echo "Checking disk space on $server..."
# 使用ssh连接到服务器并执行df命令
sshpass -p 'password' ssh user@$server 'df -h'
done
```
请注意,您需要将“server1”、“server2”等替换为实际的服务器名称或IP地址,并将“password”替换为您的服务器密码,“user”替换为您的用户名。
3. 将脚本保存后,您可以运行以下命令来执行它:
```bash
bash check_disk.sh
```
此命令将连接到每个服务器并显示其硬盘容量信息。
希望这可以帮助您监测多台Linux服务器的硬盘容量。如果您有任何问题,请随时问我。
帮我写一个监控linux cpu的脚本
好的,我可以帮您编写一个监控 Linux CPU 的脚本。以下是示例代码:
#!/bin/bash
while true
do
cpu_usage=$(top -b -n1 | grep "Cpu(s)" | awk '{print $2 + $4}')
echo "CPU使用率: $cpu_usage%"
sleep 5
done
这个脚本会每隔5秒钟输出一次当前的 CPU 使用率。您可以将其保存为一个文件,例如 cpu_monitor.sh,然后在终端中执行该文件即可开始监控。