shellMonitor

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

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

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

可选添加用户及 SSH 傻瓜式配置;

git/zsh/oh-my-zsh 等安装、vim 升级(增加nginx, ini, php, python等文件类型的高亮显示);

MySQL/PHP/Python3(uwsgi)/Redis/Nodejs/Nginx/ikev2/acme.sh 等服务可选择安装;

提供了一个简单的管理工具,用于管理nginx,mysql,php-fpm,redis,uwsgi等服务,以及新增站点(自动申请并配置安装域名证书);

主要功能

监控功能

文件监控:主要监控网站文件,可以监控多个网站目录,也可以在配置中将 Nginx、PHP、MySQL 等的配置文件也添加到监控中;

数据库监控:可以监控指定数据库中的指定数据表;也可以对指定的表指定字段做监控;

数据库备份:设定的数据库全量傻瓜式备份,无监控功能;

报警功能

Server酱:通过「Server酱」推送预警消息通知(只能推送给单个微信账号);

PushBear:通过「PushBear」推送预警消息通知(可以推送给多个微信账号);

微信报警:设置好相关的微信公众号参数后,监控到改变会发送微信模板通知(可以推送给多个微信账号);

邮件通知:详细的改变内容会通过邮件发送;

关于Server酱通知

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

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

说明:

在微信推送中绑定微信号后,就可以在微信对话界面看到推送的消息;

Server酱只支持推送到一个微信号,如果想要推送到多个微信号,请使用PushBear或微信通知功能;

关于 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的方式手动添加。

SSH 登录预警通知的手动添加方式

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

将设定系统任务添加到初始化任务中

监控文件或数据库设置错误情况下的异常处理

如邮件通知方式选择 mutt 但系统中并没有安装改工具下的处理

增加 SSH 登录的预警通知

增加 SFTP 登录的预警通知

增加 SCP 上传文件的预警通知

增加「PushBear」预警通知功能

增加 「Server酱」预警通知功能

优化微信 ACCESS_TOKEN 获取方式

相关说明及风险提示

本工具可作为一些个人网站,或一些小微电商类型网站做伪入侵检测工具用,毕竟小微团队在系统运维及安全方面的投入几乎没有;

对于具备资源的团队,还是需要从运维策略上来考虑安全风险防范的问题;

本工具对于系统资源的消耗,并未经测试过;不过我认为目前一般商用的服务器配置,即便是小团队的电商网站的服务器配置,都经得起这点消耗吧;

如果您使用了本工具,也请不要完全依赖本工具。如有条件,想办法做系统层面、数据库层面、代码层面的加固;如条件实在不足,也请多关注您系统的异常状况。

linux 监控微信通知,一个 Linux 下基于 Bash 的文件和数据库监控及备份工具,可发送微信报警通知...相关推荐

  1. linux oracle 删除为空的dbf,Linux上Oracle误删除一个没有用的dbf表空间文件

    在Linux下面安装好Oracle只有,Linux 下面就会有一个Oracle用户,Linux上Oracle误删除一个没有用的dbf表空间文件,导致数据库连接 在Linux下面安装好Oracle只有, ...

  2. 【折腾的一个小玩意】基于jquery+百度音乐的音乐外链小工具

    [折腾的一个小玩意]基于jquery+百度音乐的音乐外链小工具 现在百度mp3好像关掉了,虾米的加载又慢,于是我就根据以前发过的百度音乐的代码弄了这个东西.代码托管到百度BAE的,应用还在审核中,不知 ...

  3. python读取目录_Python读取一个目录下所有目录和文件

    本文实例讲述了Python读取一个目录下所有目录和文件的方法.分享给大家供大家参考,具体如下: 这里介绍的是刚学python时的一个读取目录的列子,给大家分享下: #!/usr/bin/python ...

  4. 硬盘克隆带linux系统,一种Windows环境下基于DiskGenius克隆Linux系统的方法及系统与流程...

    本发明涉及服务器操作系统技术领域,特别是一种windows环境下基于diskgenius克隆linux系统的方法及系统. 背景技术: 服务器在测试过程中需要反复安装linux操作系统用于服务器的各种测 ...

  5. linux目录统计编程,linux系统编程----统计一个目录下的普通文件个数

    主要是为了统计linux系统下一个指定目录下面的普通文件个数,运用目录操作的一些函数,配合递归调用来实现该功能. 首先介绍一下函数原型: 打开一个空目录 DIR *opendir(const char ...

  6. linux 换行符_一个linux帮你做高效数据统计

    wc(world count)是一个统计文件字词,字节,行数的命令,它可以帮我们非常方便的统计以上信息. 主要参数 常见参数如下: -c 统计字节数. -l 统计行数. -m 统计字符数.这个标志不能 ...

  7. linux 混音设备,一个linux 混音播放的 /etc/asound.conf 配置

    一个linux 混音播放的 /etc/asound.conf 配置 备用. 只有相同用户才能实现设备的同时打开. pcm.!dmix { type dmix ipc_key 5678293 ipc_k ...

  8. Linux复制指定目录及子目录下特定类型的文件

    方法一:通过完全复制然后删除指定类型的文件完成 Step1 使用cp命令复制所有文件 cp -r test/ test2 将测试目录test下所有内容完全复制到test2 Step2 组合使用find ...

  9. Centos7.4在vmware6.5下基于nfs和dd实现虚机的备份恢复

    目录 1.背景说明... 2 2.搭建nfs服务器... 2 2.1.nfs服务端安装包... 2 2.2.关闭防火墙... 3 2.3.创建共享目录... 3 2.4.挂载数据盘... 3 2.4. ...

最新文章

  1. 用switch编写一个计算机程序,超级新手,用switch写了个计算器程序,求指导
  2. 朋友开网店 做个抓取数据的小程序
  3. HDU4716 A Computer Graphics Problem
  4. python 数据库查询序列化_python-将sqlalchemy类序列化为json
  5. Java开发知识之Java面相对象
  6. 全国人工智能大赛 AI+4K HDR赛项 冠军团队方案分享
  7. Linux文本截取命令cut​笔记
  8. 关于java连接sqlserver2000 和sqlserver2005的初识
  9. 基于小波变换的数字图像处理(MATLAB源代码)
  10. java三目表达式_Java8新特性Lambda表达式
  11. 智能门禁(4)---基于face++和Onenet平台的人脸门禁系统
  12. 使用 docker+tmux 加强容器调度
  13. 使用OpenSSL颁发CA证书
  14. 计算机组成与设计01——计算机概要与技术
  15. codeforces GYM 101431B (后缀数据结构)
  16. Ubuntu18.04 没有有以太网连接的解决办法
  17. 在西安电子科技大学读研是一种什么样的体验
  18. 第二次作业:《国际贸易学》—自由贸易理论
  19. 一个印度人写的VC串口类CSerialCom(有串口基础介绍)
  20. 如何利用软件绘制数学图像中的箭头坐标轴图像?

热门文章

  1. Mac基础:启用root
  2. 常见问题(持续更新)
  3. excel导入plsql解决乱码问题
  4. 人工智能向“上”生长,可信AI渐行渐近
  5. IE6 7 8BUG锦集
  6. K线形态识别_低档五阳线
  7. java微信小程序 springboot美甲店铺座位预约系统
  8. 音乐网站需要的资源与素材
  9. Linux后台启动命令总结
  10. html,css基础笔记(一)