监控服务器的脚本log_agent
监控服务器脚本:
将恶意攻击IP地址加入黑名单
1、分割日志
使用os.system 执行操作系统命令,使用重定向来分割日志
2.获取访问ip
读日志文件,获取访问ip记录,使用字符串.split来获取访问ip
3.将恶意攻击ip加入黑名单
把所有访问ip加入到list,判断次数,如果超过200,加入黑名单os.system('iptables -I INPUT 1-p tcp -s %s -j DROP'%)
4.每分钟执行一次
time.sleep(60)
5.循环
while true
time模块:
import time
time_now=time.strftime('%Y%m%d%H%M%S')
print(time_now)
import os, time while True:
ip_list = [] # 存放所有ip的列表
src_log = '/opt/lampp/logs/access_log' # 源日志
new_log = '/opt/lampp/logs/access_log_%s' % time.strftime('%Y%m%d%H%M')
# 新日志的文件名
os.system('cat {s_log} > {n_log} && > {s_log}'.format(s_log=src_log, n_log=new_log)) # 分割每分钟的日志
with open(new_log) as fr: # 打开日志文件
for line in fr: # 循环文件每一行的内容
ip = line.split('-')[0].strip() # 分割字符串,获取ip地址
ip_list.append(ip) # 把所有的ip地址加入到iplist中
for ip in ip_list: # 再循环整个iplist
if ip_list.count(ip) > 20: # 判断ip出现次数是否大于2的加入黑名单
os.system('iptables -I INPUT 1 -p tcp -s %s -j DROP' % ip)
# 执行操行系统命令,把ip地址加入黑名单
for i in range(ip_list.count(ip)):
ip_list.remove(ip) # 从ip_list中把已经加入黑名单的ip全部删掉
time.sleep(60)
将监控服务器脚本做成一个功能函数,直接调用,入参是日志路径
#监控访问日志函数
import os, time
def log_agent(log_name):
while True:
ip_list = [] # 存放所有ip的列表
src_log = log_name # 源日志
new_log = '%s,%s'%(src_log) % time.strftime('%Y%m%d%H%M')
# 新日志的文件名
os.system('cat {s_log} > {n_log} && > {s_log}'.format(s_log=src_log, n_log=new_log)) # 分割每分钟的日志
with open(new_log) as fr: # 打开日志文件
for line in fr: # 循环文件每一行的内容
ip = line.split('-')[0].strip() # 分割字符串,获取ip地址
ip_list.append(ip) # 把所有的ip地址加入到iplist中
for ip in ip_list: # 再循环整个iplist
if ip_list.count(ip) > 20: # 判断ip出现次数是否大于2的加入黑名单
os.system('iptables -I INPUT 1 -p tcp -s %s -j DROP' % ip)
# 执行操行系统命令,把ip地址加入黑名单
for i in range(ip_list.count(ip)):
ip_list.remove(ip) # 从ip_list中把已经加入黑名单的ip全部删掉
time.sleep(60)
log_agen('日志路径')
监控服务器的脚本log_agent的更多相关文章
- shell编程-基础
1.linux 下 Bash 程序开 1.1 怎样写 shell 脚本 1.使用编辑工具编辑shell 脚本,例如 vim,脚本名字一般用.sh 为后缀,不用.sh 为后缀 时编辑的内容为全黑,不会有 ...
- shell实现脚本监控服务器及web应用
实际工作中我们需要知道部署在服务器上的应用有没有问题,但是人为的操作太麻烦有咩有简单的方式呢shell来监控我们服务器运行状态以及服务器上部署的应用,如果出现异常就会自动发送一个邮件给我们,开始搞起. ...
- Linux记录-shell实现脚本监控服务器及web应用
1.apache web 服务器 1 2 3 4 5 6 7 8 9 10 !/bin/bash # 表示请求链接3秒钟,不要返回的测试数据 nc -w 3 localhost 80 &> ...
- python3小脚本-监控服务器性能并插入mysql数据库
操作系统: centos版本 7.4 防火墙 关闭 selinux 关闭 python版本 3.6 mysql版本 5.7 #操作系统性能脚本 [root@localhost sql]# cat cp ...
- zabbix自定义脚本监控服务器端口状态
zabbix可以通过客户端的[net.tcp.port[<ip>,port]]该item监控项来判断本地/远程服务器TCP端口是否正常,不过当时没有想起来,就用了自定义脚本去写的,很久没有 ...
- linux 监控服务器脚本
#!/bin/bash ctime=`date +%x%T`monitor_dir=/home/jk/if [ ! -d $monitor_dir ]; then mkdir $monitor_ ...
- PHP 监控服务器动态
预期准备 一个139邮箱,收到邮件后,可以免费给你短信提醒.如果你不需要短信提醒功能,用什么邮箱都可以 另外一个可以运行PHP文件的Web服务器(相当于监控服务器),现在免费的PHP网站空间很多,上网 ...
- 借助mosquitto“实时”远程监控服务器数据库运行状态
公司的项目还处于开发阶段,我把整个后台服务临时放在阿里云上供前端测试,用的阿里云的ECS云服务器,HTTP请求服务器和数据库服务都安装在一台机子上(穷啊,凑合用),做测试用,配置相当低:单核1Gb.其 ...
- shell脚本实例-系统监控
shell脚本监控网站并实现邮件.短信报警shell进程监控脚本(发送邮件报警)Shell脚本监控服务器在线状态和邮件报警的方法 http://www.jbxue.com/jb/shell/ 11. ...
随机推荐
- 01. Linux-Kali系统网卡配置
配置网卡操作: vim /etc/network/interfaces auto eth0iface eth0 inet static 配置eth0使用默认的静态地址address 192.168.1 ...
- UNIX网络编程总结二
绝大多数客户-服务程序使用TCP和UDP,这两个协议转而使用IP.UDP是一种简单的,不可靠的数据报协议,TCP是一种精致的可靠的字节流协议. 在TCP/IP协议族中: mrouted:IGMP→IP ...
- more 分页显示文件内容
1.命令功能 more 分页显示文件内容 2.语法格式 more option file 参数说明 参数 参数说明 -num 指定屏幕显示大小为num行 +num 从行号num号开始显示 -s 把连 ...
- cf2c(模拟退火 步长控制
https://www.luogu.org/problem/CF2C 题意:在平面上有三个没有公共部分的圆,求平面上一点使得到三个圆的切线的夹角相等.(若没答案满足条件,则不打印 思路:可用模拟退火算 ...
- scapy - 基于python的数据包操作库
简介 地址:https://github.com/secdev/scapy scapy是一个基于python的交互式数据包操作程序和库. 它能够伪造或者解码多种协议的数据包,通过使用pcap文件对他们 ...
- Jquery异步上传文件
我想通过jQuery异步上传文件,这是我的HTML: 1 2 3 <span>File</span> <input type="file" id=&q ...
- python 判断一个数是整数还是小数
a=81**0.5 s=str(a).split('.') if float(s[1])==0: print('整数') else :print('小数')
- Centos7硬盘空间扩容(vmware虚拟机)
1. 查看系统挂载点 df -h 2. 系统关机 init 0 硬盘1空间修改为100G,保存并启动 3.查看磁盘 fdisk -l /dev/sda空间加上去了 3. 硬盘分区 fdisk /dev ...
- Vue项目【饿了么App】mock数据【data.json】
1.前后端分离式开发,约定好数据字段接口! 2.前端mock静态数据,开发完毕后,与后端进行数据联调! 3.vue.config.js 配置 devServer const appData = req ...
- 冲刺CSP-S集训考试反思+其它乱写(密码私信)
RT.开坑. 10.1 开门黑23333. 放假回来稍困,而且感冒似乎愈加严重,导致我正常考试基本睁不开眼.一个小时勉强把题读懂,神志恍惚如斯. 看T2觉得估计又是各种推柿子堆定理的数学大题,写了个暴 ...