Home

Awesome

shellMonitor

一个 Linux 下基于 bash 的文件和数据库监控及备份工具。

写这个工具的原因,在于一个朋友的一个小电商网站,因为未明原因被黑了,总是会被增加超级管理员,并将收款账号改成别人的。于是有了写一个监控工具的想法。

因为不断的重新安装/初始化各项系统服务,为了方(TOU)便(LAN),写了一个服务器初始化脚本,主要功能包括:

主要功能

监控功能

报警功能

提示:如果是阿里云或者腾讯云服务器,会禁止 25 端口,默认方式邮件发送失败。可以手动配置邮件发送服务器或者 MUTT ,设置以 SMTP 的方式发送邮件。也可以在云服务商管理后台申请解封 25 端口。

关于Server酱通知

微信接收通知其实是相当方便的一种方式,但测试账号发出的通知会被折叠到订阅号中,一不留神可能就错过通知消息。

而认证又是相当麻烦的一件事情:需要企业身份申请服务号认证。所以增加Server酱通知。

说明:

关于 PushBear 通知

Server酱一样,区别在于可以推送到多个微信账号。请点击这里先行设置好通道。

关于微信通知

如果没有微信公众号、或者没有做认证的公众号,发送模版消息有限制。可以申请微信公众平台接口测试账号,然后新增测试模版,标题随便写,内容如下:

{{first.DATA}} 网站名称:{{keyword1.DATA}} 监控项目:{{keyword2.DATA}} 预警状态:{{keyword3.DATA}} {{remark.DATA}}

使用方式

git clone https://github.com/zsenliao/shellMonitor.git
chown -R root:root shellMonitor  #  建议在 root 权限下操作
chmod +x shellMonitor/*.sh  # 添加执行权限
vi shellMonitor/config.sh  # 根据提示修改相关的配置
shellMonitor/main.sh init
crontab -l | grep shellMonitor  # shellMonitor 为程序目录名

如返回结果为空,请通过crontab -e的方式手动添加。

ln -sf /home/shellMonitor/sysMonitor.sh /etc/profile.d/sysMonitor.sh

sed -i "s/^PrintMotd [a-z]*/#&/g; 1,/#PrintMotd[a-z]*/{s/^#PrintMotd [a-z]*/PrintMotd no/g}" /etc/ssh/sshd_config

# 重启 SSH 服务
service sshd restart

注意:需要修改 sysMonitor.sh 文件中的 CUR_DIR 为脚本所在的实际路径

更新说明

如果已经在服务器上使用了本工具,可参照以下说明进行升级

TODO

相关说明及风险提示