本文目录导读:

是的,脚本完全可以监控内存使用率并在超过阈值时发送告警。
下面为您提供几个不同场景下的脚本方案,包括 Linux 和 Windows 系统,以及多种告警方式(邮件、钉钉/微信、终端告警)。
Linux 系统 (Bash 脚本)
这是最常用、最灵活的方式。
核心命令:free
#!/bin/bash
# 告警阈值(百分比)
THRESHOLD=80
# 检查间隔(秒)
INTERVAL=60
while true; do
# 获取内存使用率(精确到整数)
# free 命令输出示例:
# total used free shared buff/cache available
# Mem: 8010000 5000000 1000000 200000 2010000 2500000
USAGE=$(free | grep Mem | awk '{printf "%.0f", $3/$2 * 100.0}')
if [ $USAGE -gt $THRESHOLD ]; then
echo "[$(date)] 警告: 内存使用率已达 ${USAGE}% (阈值: ${THRESHOLD}%)"
# 在这里添加告警命令 (见下方“告警方法”)
fi
sleep $INTERVAL
done
告警方法(可选用一种或多种):
-
终端弹窗(桌面环境):
notify-send "内存告警" "内存使用率已达 ${USAGE}%" -
发送邮件(需安装
mail或mailx):echo "内存使用率已达 ${USAGE}%" | mail -s "服务器内存告警" your-email@example.com -
发送钉钉/企业微信机器人消息(需要 webhook URL):
curl -s -X POST "https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d "{\"msgtype\": \"text\", \"text\": {\"content\": \"服务器内存告警: 当前使用率 ${USAGE}%\"}}"
Windows 系统 (PowerShell 脚本)
适合在 Windows 服务器上运行。
# 告警阈值(百分比)
$Threshold = 80
# 检查间隔(秒)
$Interval = 60
while ($true) {
# 获取内存使用率
$OS = Get-CimInstance Win32_OperatingSystem
$UsedMemory = $OS.TotalVisibleMemorySize - $OS.FreePhysicalMemory
$TotalMemory = $OS.TotalVisibleMemorySize
$Usage = [math]::Round(($UsedMemory / $TotalMemory) * 100, 0)
if ($Usage -gt $Threshold) {
$Time = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
$Message = "[$Time] 警告: 内存使用率已达 ${Usage}% (阈值: ${Threshold}%)"
# 输出到控制台
Write-Host $Message -ForegroundColor Red
# 告警方法示例
# 发送邮件(需配置 Send-MailMessage)
# Send-MailMessage -To "admin@example.com" -From "alerts@example.com" -Subject "内存告警" -Body $Message -SmtpServer "smtp.example.com"
# 写入 Windows 事件日志(可在事件查看器中查看)
Write-EventLog -LogName Application -Source "MemoryMonitor" -EntryType Warning -EventId 1001 -Message $Message
}
Start-Sleep -Seconds $Interval
}
更专业的监控方案(推荐用于生产环境)
虽然脚本简单有效,但在生产环境中,通常建议使用专门的监控工具,它们更稳定、易于管理,并且自带告警功能。
| 工具 | 优点 | 适用场景 |
|---|---|---|
| Prometheus + Alertmanager | 工业级,可扩展性强,支持复杂告警规则 | 大型分布式系统、容器化环境 (K8s) |
| Zabbix | 功能全面,自带告警和可视化 | 传统服务器、网络设备监控 |
| Grafana + 告警机制 | 和 Prometheus 结合使用,图形化极佳 | 需要良好可视化展示的场景 |
| 系统自带工具 | 如 Linux 的 top、htop,Windows 的资源监视器 |
临时快速查看或最简单的脚本监控 |
- 脚本方案:简单、快捷、灵活,适合个人或小规模、非核心业务的监控。上述 Bash 和 PowerShell 脚本可以直接使用。
- 工具方案:更可靠、功能更强大、维护更容易,适合企业级或生产环境。
您可以根据自己的环境和需求选择一个方案,如果只是想快速搭一个脚本,上面给出的 Linux 或 Windows 脚本代码已经可以直接复制运行。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播