通過python執行shell指令的方法有4種,在這裡介紹一種常用的。
os.system、 os.popen、 commands、 subprocess
接下來介紹subprocess的使用
通過python 日志分析,擷取到攻擊源IP位址,收集寫入到mysql資料庫中
mysql如下:
iptables.py腳本
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
import MySQLdb
import subprocess
try:
connection = MySQLdb.connect(user=‘soul‘,passwd=‘soul‘,host=‘127.0.0.1‘,db=‘iptable‘,port=3306,use_unicode=1,charset="utf8")
cursor = connection.cursor()
cursor.execute(‘select * from iptables‘)
data = cursor.fetchall()
cursor.close()
connection.close()
except MySQLdb.Error,err_msg:
print ‘MySQLdb error msg:‘ ,err_msg
def insert():
for info in data:
ipaddress = info[1]
print ‘成功插入IP黑名單:%s‘ %ipaddress
subprocess.call([‘/sbin/iptables -I INPUT -s %s -p tcp --dport 8000 -j ACCEPT‘ % ipaddress], shell=True)
def save():
subprocess.call([‘service iptables save‘], shell=True)
if __name__ == ‘__main__‘:
insert()
save()
python iptables.py
result:
原文:http://soul455879510.blog.51cto.com/6180012/1943514