写一个shell脚本用于监控linux服务器的内存、CPU、及磁盘的使用情况
通过使用这样的脚本,运维团队可以更加高效地管理服务器资源,减少潜在的风险,并提高整体的服务质量。
接下来我们来看一下脚本案例:
[root@xiaoge opt]# cat system_listen.sh
#!/bin/bash
# 定义阈值
MEMORY_THRESHOLD=80 # 内存使用率超过80%时发送警告
CPU_THRESHOLD=90 # CPU使用率超过90%时发送警告
DISK_THRESHOLD=90 # 磁盘使用率超过90%时发送警告
# 定义警告邮件地址
EMAIL="admin@example.com"
# 获取系统信息
MEMORY_USAGE=$(free | grep Mem | awk '{print $3/$2 * 100.0}')
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
DISK_USAGE=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')
# 判断是否超过阈值
if (( $(echo "$MEMORY_USAGE > $MEMORY_THRESHOLD" | bc -l) )); then
echo "High Memory Usage: $MEMORY_USAGE%" | mail -s "Memory Alert" $EMAIL
fi
if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )); then
echo "High CPU Usage: $CPU_USAGE%" | mail -s "CPU Alert" $EMAIL
fi
if (( $(echo "$DISK_USAGE > $DISK_THRESHOLD" | bc -l) )); then
echo "High Disk Usage: $DISK_USAGE%" | mail -s "Disk Alert" $EMAIL
fi
# 输出当前状态
echo "Current System Status:"
echo "Memory Usage: $MEMORY_USAGE%"
echo "CPU Usage: $CPU_USAGE%"
echo "Disk Usage: $DISK_USAGE%"
[root@xiaoge opt]# source system_listen.sh
Current System Status:
Memory Usage: 5.84526%
CPU Usage: 3.2%
Disk Usage: 4%
#目前来看,我的服务器使用情况良好chmod +x /opt/system_listen.sh 来赋予脚本执行权限。mail 命令发送邮件之前,您需要确保邮件服务器已经配置好,并且可以通过命令行发送邮件。如果您的服务器没有邮件服务,可以考虑使用第三方邮件服务提供商(如 SendGrid)的 API 来发送邮件。希望这个脚本对您有所帮助!如果有任何进一步的需求或者问题,请随时告诉我。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。