1. 程式人生 > >利用python指令碼程式監控檔案被修改

利用python指令碼程式監控檔案被修改

  1. 需求:

利用python編寫監控程式,監控一個檔案目錄,當目錄下的檔案發生改變時,實現有修改就發報警郵件

郵件使用QQ郵箱,需要開啟smtp,使用手機發生簡訊,騰訊會給你發郵箱密碼。如下所示:

把這個密碼填到程式中。

python版本

[[email protected] day01]# python
Python 2.6.6 (r266:84292, Jul 23 2015, 15:22:56) [GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>



2.程式程式碼如下:

監控主程式

[[email protected] day01]# cat montest.py 
#!/usr/bin/env python
#coding:utf-8 import sys import pyinotify from sendMail import send try: path = sys.argv[1] except: raise(AttributeError("has no attribute path")) class MyEvent(pyinotify.ProcessEvent): def process_IN_MODIFY(self,event): '''print("hell world") print ("%s be chandg "event.name) ''' content = "%s be change" %(path+event.name) title = "refine's mail" froms = "
[email protected]
" '''發郵件賬號''' to = "[email protected]" '''接收郵件賬號''' send(content,title,froms,to) print (content) def main(path): vm = pyinotify.WatchManager() vm.add_watch(path,pyinotify.ALL_EVENTS,rec = True) event = MyEvent() notifier = pyinotify.Notifier(vm,event) notifier.loop() main(path)



傳送郵件程式:
[[email protected] day01]# cat sendMail.py
#!/usr/bin/env python
#coding:utf-8 import smtplib from email.mime.text import MIMEText def send(content,title,froms,*to): msg = MIMEText(content,"plain","utf-8") msg["Subject"]= title msg["From"]= froms msg["To"] = ",".join(to) server = smtplib.SMTP_SSL("smtp.qq.com",465) server.login("[email protected]","zqyricvcbed") '''此處寫你發郵件的qq和密碼''' server.sendmail(froms,list(to),msg.as_string()) server.quit() if __name__ == '__main__': ''' content = "hello I am alvin" title = "alvin's mail" froms = "[email protected]" to = "[email protected]" send(content,title,froms,to) '''

3.實戰測試如下: