带来一篇Pyinotify文件体系监控
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!Pyinotify是一个Python模块,用来监测文件体系的变更。Pyinotify依附于Linux内核的功效—inotify(内核2.6.13兼并)。inotify的是一个事务驱动的关照器,其关照接口经由过程三个体系挪用从内核空间到用户空间。pyinotify分离这些体系挪用,并供应一个***的笼统和一个通用的体例来处置这些功效。[*]pyinotify说百了就是经由过程挪用体系的inotify来完成关照的
[*]inotify既能够监督文件,也能够监督目次
[*]Inotify利用体系挪用而非SIGIO来关照文件体系事务。
Inotify能够监督的文件体系事务包含:
EventNameIsanEventDescriptionIN_ACCESSYesfilewasaccessed.IN_ATTRIBYesmetadatachanged.IN_CLOSE_NOWRITEYesunwrittablefilewasclosed.IN_CLOSE_WRITEYeswrittablefilewasclosed.IN_CREATEYesfile/dirwascreatedinwatcheddirectory.IN_DELETEYesfile/dirwasdeletedinwatcheddirectory.IN_DELETE_SELFYes自删除,即一个可实行文件在实行时删除本人IN_DONT_FOLLOWNodontfollowasymlink(lk2.6.15).IN_IGNOREDYesraisedonwatcheditemremoving.Probablyuselessforyou,preferinsteadIN_DELETE*.IN_ISDIRNoeventoccurredagainstdirectory.Itisalwayspiggybackedtoanevent.TheEventstructureautomaticallyprovidethisinformation(via.is_dir)IN_MASK_ADDNotoupdateamaskwithoutoverwritingthepreviousvalue(lk2.6.14).Usefulwhenupdatingawatch.IN_MODIFYYesfilewasmodified.IN_MOVE_SELFYes自挪动,即一个可实行文件在实行时挪动本人IN_MOVED_FROMYesfile/dirinawatcheddirwasmovedfromX.CantracethefullmoveofanitemwhenIN_MOVED_TOisavailabletoo,inthiscaseifthemoveditemisitselfwatched,itspathwillbeupdated(seeIN_MOVE_SELF).IN_MOVED_TOYesfile/dirwasmovedtoYinawatcheddir(seeIN_MOVE_FROM).IN_ONLYDIRNoonlywatchthepathifitisadirectory(lk2.6.15).Usablewhencalling.add_watch.IN_OPENYesfilewasopened.IN_Q_OVERFLOWYeseventqueuedoverflowed.Thiseventdoesntbelongstoanyparticularwatch.IN_UNMOUNTYes宿主文件体系被umount
经由过程pyinotify来完成对文件体系的监控十分复杂
#!/usr/bin/envpython#encoding:utf-8importosfrompyinotifyimportWatchManager,Notifier,ProcessEvent,IN_DELETE,IN_CREATE,IN_MODIFYclassEventHandler(ProcessEvent):"""事务处置"""defprocess_IN_CREATE(self,event):print"Createfile:%s"%os.path.join(event.path,event.name)defprocess_IN_DELETE(self,event):print"Deletefile:%s"%os.path.join(event.path,event.name)defprocess_IN_MODIFY(self,event):print"Modifyfile:%s"%os.path.join(event.path,event.name)defFSMonitor(path=.):wm=WatchManager()mask=IN_DELETE|IN_CREATE|IN_MODIFYnotifier=Notifier(wm,EventHandler())wm.add_watch(path,mask,rec=True)printnowstartingmonitor%s%(path)whileTrue:try:notifier.process_events()ifnotifier.check_events():notifier.read_events()exceptKeyboardInterrupt:notifier.stop()breakif__name__=="__main__":FSMonitor()
参考材料:
http://pyinotify.sourceforge.net/
http://trac.dbzteam.org/pyinotify/wiki
http://iyouf.info/pyinotify-monitor-filesystem.html
欢迎大家来到仓酷云论坛!
带来一篇Pyinotify文件体系监控
选择一些适于初学者的Linux社区。 首先Linux是开源的,这也是最主要的原因,想学windows,Unix,对不起我们没源代码。也正是因为这样,Linux才能够像滚雪球一样越滚越大,发展到现在这种规模。 Linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面。 学习Linux系统在服务中的配置方法及使用方法。Linux在服务器中应用相当广,应对常用的apache,samba,ftp等服务器基本配置清楚了解。[重点,应巩固学习] 熟悉并掌握安装Linux,安装是学习的前提。目前较常见的安装方法有二种: Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问。 Linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面。
页:
[1]