标签:class c code tar http color
官方参考:
https://github.com/seb-m/pyinotify/wiki/Events-types
https://github.com/seb-m/pyinotify/wiki/Install
最近在网上看到python有个pyinotify模块,其中他们可以监控文件夹内的文件的创建,修改,读取,删除等系列操作,我修改了下,添加了可以吧操作记录写到日志里的一点方法,下面就贴出代码了给大家分享下:#!/usr/bin/env python
|
01
02
03
04
05
06
07
08
09
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
48
49
50
51
52
53
54
55
56
57 |
import osimport datetimeimport pyinotifyimport loggingclass MyEventHandler(pyinotify.ProcessEvent): logging.basicConfig(level=logging.INFO,filename=‘/var/log/monitor.log‘) #自定义写入那个文件,可以自己修改 logging.info("Starting monitor...") def
process_IN_ACCESS(self, event): print
"ACCESS event:", event.pathname logging.info("ACCESS event : %s %s"
% (os.path.join(event.path,event.name),datetime.datetime.now())) def
process_IN_ATTRIB(self, event): print
"ATTRIB event:", event.pathname logging.info("IN_ATTRIB event : %s %s"
% (os.path.join(event.path,event.name),datetime.datetime.now())) def
process_IN_CLOSE_NOWRITE(self, event): print
"CLOSE_NOWRITE event:", event.pathname logging.info("CLOSE_NOWRITE event : %s %s"
% (os.path.join(event.path,event.name),datetime.datetime.now())) def
process_IN_CLOSE_WRITE(self, event): print
"CLOSE_WRITE event:", event.pathname logging.info("CLOSE_WRITE event : %s %s"
% (os.path.join(event.path,event.name),datetime.datetime.now())) def
process_IN_CREATE(self, event): print
"CREATE event:", event.pathname logging.info("CREATE event : %s %s"
% (os.path.join(event.path,event.name),datetime.datetime.now())) def
process_IN_DELETE(self, event): print
"DELETE event:", event.pathname logging.info("DELETE event : %s %s"
% (os.path.join(event.path,event.name),datetime.datetime.now())) def
process_IN_MODIFY(self, event): print
"MODIFY event:", event.pathname logging.info("MODIFY event : %s %s"
% (os.path.join(event.path,event.name),datetime.datetime.now())) def
process_IN_OPEN(self, event): print
"OPEN event:", event.pathname logging.info("OPEN event : %s %s"
% (os.path.join(event.path,event.name),datetime.datetime.now())) def main(): # watch manager wm =
pyinotify.WatchManager() wm.add_watch(‘/tmp‘, pyinotify.ALL_EVENTS, rec=True) #/tmp是可以自己修改的监控的目录 # event handler eh =
MyEventHandler() # notifier notifier =
pyinotify.Notifier(wm, eh) notifier.loop()if
__name__ ==
‘__main__‘: main() |
下面来看看效果如何呢:我在代码定义的是监控tmp目录下的变化:
|
01
02
03
04
05
06
07
08
09
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
48
49
50 |
[root@centos6 monitor-folder]# python total-monitor.pyOPEN event: /tmp/.ICE-unixCLOSE_NOWRITE event: /tmp/.ICE-unixOPEN event: /tmpCLOSE_NOWRITE event: /tmpOPEN event: /tmpCLOSE_NOWRITE event: /tmpDELETE event: /tmp/aaDELETE event: /tmp/adduser.confDELETE event: /tmp/adjtimeDELETE event: /tmp/aliasesDELETE event: /tmp/bash.bashrcDELETE event: /tmp/bindresvport.blacklistDELETE event: /tmp/environmentDELETE event: /tmp/fstabDELETE event: /tmp/ipt.errDELETE event: /tmp/ipt.outDELETE event: /tmp/krb5.confDELETE event: /tmp/odbc.iniDELETE event: /tmp/odbcinst.iniDELETE event: /tmp/timezoneDELETE event: /tmp/ucf.confDELETE event: /tmp/warnquota.confDELETE event: /tmp/wgetrcDELETE event: /tmp/xinetd.confCREATE event: /tmp/aaOPEN event: /tmp/aaATTRIB event: /tmp/aaCLOSE_WRITE event: /tmp/aaCREATE event: /tmp/bbOPEN event: /tmp/bbATTRIB event: /tmp/bbCLOSE_WRITE event: /tmp/bbCREATE event: /tmp/ccOPEN event: /tmp/ccATTRIB event: /tmp/ccCLOSE_WRITE event: /tmp/cc上面是打印出来的监控状态,下面是我的操作代码:[root@centos6 tmp]# lsaa bash.bashrc ipt.err odbcinst.ini wgetrcadduser.conf bindresvport.blacklist ipt.out timezone xinetd.confadjtime environment krb5.conf ucf.confaliases fstab odbc.ini warnquota.conf[root@centos6 tmp]# rm -rf *[root@centos6 tmp]# touch aa[root@centos6 tmp]# touch bb[root@centos6 tmp]# touch cc[root@centos6 tmp]# |
上面是直接打印出来的,下面在看看我吧操作记录在日志文件里面,也可以看下日志文件的记录:
|
01
02
03
04
05
06
07
08
09
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 |
INFO:root:Starting monitor...INFO:root:OPEN
event : /tmp/.ICE-unix 2011-10-27
13:31:57.219168INFO:root:CLOSE_NOWRITE event : /tmp/.ICE-unix 2011-10-27
13:31:57.219609INFO:root:OPEN
event : /tmp/
2011-10-27
13:32:21.395228INFO:root:CLOSE_NOWRITE event : /tmp/
2011-10-27
13:32:21.398105INFO:root:OPEN
event : /tmp/
2011-10-27
13:32:25.108997INFO:root:CLOSE_NOWRITE event : /tmp/
2011-10-27
13:32:25.110239INFO:root:CREATE event : /tmp/aa 2011-10-27
13:32:28.004863INFO:root:OPEN
event : /tmp/aa 2011-10-27
13:32:28.005860INFO:root:IN_ATTRIB event : /tmp/aa 2011-10-27
13:32:28.006723INFO:root:CLOSE_WRITE event : /tmp/aa 2011-10-27
13:32:28.014617INFO:root:CREATE event : /tmp/bb 2011-10-27
13:32:30.149758INFO:root:OPEN
event : /tmp/bb 2011-10-27
13:32:30.164415INFO:root:IN_ATTRIB event : /tmp/bb 2011-10-27
13:32:30.164877INFO:root:CLOSE_WRITE event : /tmp/bb 2011-10-27
13:32:30.165303INFO:root:CREATE event : /tmp/cc 2011-10-27
13:32:32.725418INFO:root:OPEN
event : /tmp/cc 2011-10-27
13:32:32.726367INFO:root:IN_ATTRIB event : /tmp/cc 2011-10-27
13:32:32.727229INFO:root:CLOSE_WRITE event : /tmp/cc 2011-10-27
13:32:32.735052INFO:root:CREATE event : /tmp/dd 2011-10-27
13:32:39.771041INFO:root:OPEN
event : /tmp/dd 2011-10-27
13:32:39.780881INFO:root:IN_ATTRIB event : /tmp/dd 2011-10-27
13:32:39.781455INFO:root:CLOSE_WRITE event : /tmp/dd 2011-10-27
13:32:39.781893INFO:root:Starting monitor...INFO:root:OPEN
event : /tmp/.ICE-unix 2011-10-27
14:01:43.742477INFO:root:CLOSE_NOWRITE event : /tmp/.ICE-unix 2011-10-27
14:01:43.742915INFO:root:OPEN
event : /tmp/
2011-10-27
14:01:50.579778INFO:root:CLOSE_NOWRITE event : /tmp/
2011-10-27
14:01:50.581317INFO:root:DELETE event : /tmp/aa 2011-10-27
14:01:54.999528INFO:root:DELETE event : /tmp/bb 2011-10-27
14:01:58.995966INFO:root:DELETE event : /tmp/cc 2011-10-27
14:02:02.795950INFO:root:DELETE event : /tmp/dd 2011-10-27
14:02:06.284208INFO:root:OPEN
event : /tmp/
2011-10-27
14:02:07.738560INFO:root:CLOSE_NOWRITE event : /tmp/
2011-10-27
14:02:07.741922INFO:root:CREATE event : /tmp/aa 2011-10-27
14:02:11.110322INFO:root:OPEN
event : /tmp/aa 2011-10-27
14:02:11.113150INFO:root:IN_ATTRIB event : /tmp/aa 2011-10-27
14:02:11.116381INFO:root:CLOSE_WRITE event : /tmp/aa 2011-10-27
14:02:11.118382INFO:root:Starting monitor...INFO:root:OPEN
event : /tmp/.ICE-unix 2011-10-27
21:39:12.520432INFO:root:CLOSE_NOWRITE event : /tmp/.ICE-unix 2011-10-27
21:39:12.520879INFO:root:OPEN
event : /tmp/
2011-10-27
21:39:23.784759INFO:root:CLOSE_NOWRITE event : /tmp/
2011-10-27
21:39:23.793211INFO:root:OPEN
event : /tmp/
2011-10-27
21:39:33.916232INFO:root:CLOSE_NOWRITE event : /tmp/
2011-10-27
21:39:33.916823INFO:root:DELETE event : /tmp/aa 2011-10-27
21:39:33.939008INFO:root:DELETE event : /tmp/adduser.conf 2011-10-27
21:39:33.958143INFO:root:DELETE event : /tmp/adjtime 2011-10-27
21:39:33.962497INFO:root:DELETE event : /tmp/aliases 2011-10-27
21:39:33.978506INFO:root:DELETE event : /tmp/bash.bashrc 2011-10-27
21:39:33.980834INFO:root:DELETE event : /tmp/bindresvport.blacklist 2011-10-27
21:39:33.997176INFO:root:DELETE event : /tmp/environment 2011-10-27
21:39:33.997683INFO:root:DELETE event : /tmp/fstab 2011-10-27
21:39:33.998110INFO:root:DELETE event : /tmp/ipt.err 2011-10-27
21:39:33.998532INFO:root:DELETE event : /tmp/ipt.out 2011-10-27
21:39:34.000360INFO:root:DELETE event : /tmp/krb5.conf 2011-10-27
21:39:34.000816INFO:root:DELETE event : /tmp/odbc.ini 2011-10-27
21:39:34.002217INFO:root:DELETE event : /tmp/odbcinst.ini 2011-10-27
21:39:34.002675INFO:root:DELETE event : /tmp/timezone 2011-10-27
21:39:34.003110INFO:root:DELETE event : /tmp/ucf.conf 2011-10-27
21:39:34.003538INFO:root:DELETE event : /tmp/warnquota.conf 2011-10-27
21:39:34.018152INFO:root:DELETE event : /tmp/wgetrc 2011-10-27
21:39:34.018641INFO:root:DELETE event : /tmp/xinetd.conf 2011-10-27
21:39:34.041880INFO:root:CREATE event : /tmp/aa 2011-10-27
21:39:40.639965INFO:root:OPEN
event : /tmp/aa 2011-10-27
21:39:40.640914INFO:root:IN_ATTRIB event : /tmp/aa 2011-10-27
21:39:40.647835INFO:root:CLOSE_WRITE event : /tmp/aa 2011-10-27
21:39:40.652158INFO:root:CREATE event : /tmp/bb 2011-10-27
21:39:43.064526INFO:root:OPEN
event : /tmp/bb 2011-10-27
21:39:43.070849INFO:root:IN_ATTRIB event : /tmp/bb 2011-10-27
21:39:43.071329INFO:root:CLOSE_WRITE event : /tmp/bb 2011-10-27
21:39:43.071762INFO:root:CREATE event : /tmp/cc 2011-10-27
21:39:47.046752INFO:root:OPEN
event : /tmp/cc 2011-10-27
21:39:47.051537INFO:root:IN_ATTRIB event : /tmp/cc 2011-10-27
21:39:47.056211INFO:root:CLOSE_WRITE event : /tmp/cc 2011-10-27
21:39:47.057490[root@centos6 tmp]#<br><br><br><a href="http://www.pyshell.com/index.php/archives/477">http://www.pyshell.com/index.php/archives/477</a> |
Python 的 pyinotify 模块 监控文件夹和文件的变动,布布扣,bubuko.com
Python 的 pyinotify 模块 监控文件夹和文件的变动
标签:class c code tar http color
原文地址:http://www.cnblogs.com/wangjiangze/p/3738211.html