如何在vps上部署Bark通知ssh连接及资源监控脚本

如何在vps上部署Bark通知ssh连接及资源监控脚本
LD2J本期教程将教会大家如何在你的vps部署Bark服务来监控资源和ssh登录信息。
1. 安装必要工具
1 | sudo apt update |
2.在vps上创建system-monitor.sh脚本
在ssh终端输入:
1
sudo nano /usr/local/bin/system-monitor.sh
进入nano编辑器后将一下内容粘贴进去
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 🛠️ 环境变量,防止系统找不到命令
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 🔐 Bark 推送 Key 和图标 URL(请根据实际修改)
BARK_KEY="abcdefg1234567" # 替换为你的 Bark API Key
icon_url="https://th.bing.com/th/id/OIP.PnLgsfgLeK-s0mUrQOeonwAAAA?w=176&h=180&c=7&r=0&o=5&dpr=1.8&pid=1.7"
# 🔍 获取主机名
hostname=$(hostname)
# 🌐 1️⃣ 资源监控部分
MEMORY_THRESHOLD=60 # 内存使用率阈值(%)
CPU_THRESHOLD=65 # CPU 使用率阈值(%)
MEMORY_USAGE=$(free | awk '/Mem:/ {printf("%.0f", $3/$2 * 100)}')
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print 100 - $8}' | awk -F. '{print $1}')
log_message=""
# 🔍 检查内存使用率
if [ "$MEMORY_USAGE" -ge "$MEMORY_THRESHOLD" ]; then
log_message+="内存占用率: $MEMORY_USAGE% (超过 ${MEMORY_THRESHOLD}%)。"
fi
# 🔍 检查 CPU 使用率
if [ "$CPU_USAGE" -ge "$CPU_THRESHOLD" ]; then
log_message+="CPU 占用率: $CPU_USAGE% (超过 ${CPU_THRESHOLD}%)。"
fi
if [ -n "$log_message" ]; then
log_message="【$hostname】$log_message"
encoded_message=$(echo "$log_message" | jq -sRr @uri)
curl -s "https://api.day.app/$BARK_KEY/$encoded_message?icon=$icon_url&isCritical=1" &>/dev/null
echo "资源监控推送已发送"
fi
# 🌐 2️⃣ SSH 登录提醒部分
if [ -n "$SSH_CONNECTION" ]; then
ssh_ip=$(echo $SSH_CONNECTION | awk '{print $1}')
user_name=$(whoami)
ssh_message="【$hostname】SSH 登录警告: 用户 $user_name 从 IP $ssh_ip 登录"
encoded_ssh_message=$(echo "$ssh_message" | jq -sRr @uri)
curl -s "https://api.day.app/$BARK_KEY/$encoded_ssh_message?icon=$icon_url&isCritical=1" &>/dev/null
echo "SSH 登录提醒已发送"
fi
完成后按下Ctrl+X键,输入Y,回车即可保存并退出nano
3. 为system-monitor.sh赋予权限
1 | sudo chmod +x /usr/local/bin/system-monitor.sh |
4. 开机命令
分别在/etc/rc.local和/etc/profile中加上一下内容
1
sudo nano /etc/rc.local
把以下内容粘贴进去:
- /usr/local/bin/system-monitor.sh 把以下内容粘贴进去:
1
sudo nano /etc/profile
Ctrl+X键,输入Y,回车即可保存并退出nano1
/usr/local/bin/system-monitor.sh
5. 设置定时任务(用来定时检测资源占用情况)
每 5 分钟运行一次脚本:
1
crontab -e
输入以下内容:
1
*/5 * * * * /usr/local/bin/system-monitor.sh
- */5 * * * *代表每5分钟执行一次,如有其他需求请自行更改。
检查日志,确认是否有定时任务运行,输入以下内容:
1
grep 'system-monitor.sh' /var/log/syslog
5. 验证脚本是否生效
输入以下内容:
1
sudo nano /usr/local/bin/system-monitor.sh
将MEMORY_THRESHOLD和CPU_THRESHOLD的值更改为1,以用来测试
- MEMORY_THRESHOLD=1 # 内存阈值,单位为 %
- CPU_THRESHOLD=1 # CPU 阈值,单位为 %
依旧按下Ctrl+X键,输入Y,回车,保存并退出nano
运行命令:成功标志:1
sudo /usr/local/bin/system-monitor.sh
- 如果内存或 CPU 使用率超过了阈值(1% 和 1%),会收到一条 Bark 通知。
- 如果当前正处于 SSH 登录中,您也会收到 Bark 提醒。
6. 调整相应的参数来满足自己的需求
输入以下内容:
1
sudo nano /usr/local/bin/system-monitor.sh
将MEMORY_THRESHOLD和CPU_THRESHOLD的值更改为自己想要的数值
- MEMORY_THRESHOLD=60 # 内存阈值,单位为 % 更改为自己想要的数值
- CPU_THRESHOLD=60 # CPU 阈值,单位为 % 更改为自己想要的数值
按下Ctrl+X键,输入Y,回车,保存并退出nano
末尾
至此就已经完成了在服务器上部署Bark推送服务来监控ssh登录以及相关资源利用。如有相关问题可联系作者本人TG联系。
如您需引用此脚本请注明来源,在此万分感谢!

