这是我查看文件夹和文件更改的代码
import sys
import time
import logging
from watchdog.observers import Observer
from watchdog.events import LoggingEventHandler
from watchdog.events import FileSystemEventHandler
class MyHandler(FileSystemEventHandler):
LOG = '/var/www/time/logs/server_logs/ilog@'
def on_created(self, event):
timestr = time.strftime("%Y%m%d")
log = open(self.LOG+timestr,'aw+')
log.write(event.src_path +"##"+time.strftime('%Y-%m-%d %H:%M:%S')+"##created\n")
if __name__ == "__main__":
path = "/ftpo/work"
event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
我得到的日志(当FTP上传文件或文件夹时)
/ftpo/work/emergency77r83j90s933/a detourer/site white BG/Barcelona.jpg##2014/09/01 17:35:56##created
/ftpo/work/bal1/a detourer/Tarif - C/Det pour le 02-09_C##2014/09/01 17:40:13##created
/ftpo/work/bal1/a detourer/Tarif - C/Det pour le 02-09_C/.AppleDouble##2014/09/01 17:40:13##created
/ftpo/work/bal1/a detourer/..DS_Store.VpiV3e##2014/09/01 17:40:13##created
/ftpo/work/bal1/a detourer/Tarif - C/..DS_Store.Y7c8E1##2014/09/01 17:40:13##created
/ftpo/work/bal1/a detourer/Tarif - C/.AppleDouble/..Parent.b39ogO##2014/09/01 17:40:13##created
/ftpo/work/bal1/a detourer/Tarif - C/Det pour le 02-09_C/..DS_Store.09McRB##2014/09/01 17:40:14##created
/ftpo/work/bal1/a detourer/Tarif - C/Det pour le 02-09_C/.Creature-0008.eps.j8ocAp##2014/09/01 17:40:14##created
/ftpo/work/bal1/a detourer/Tarif - C/Det pour le 02-09_C/.AppleDouble/..DS_Store.7hRSo1##2014/09/01 17:41:19##created
/ftpo/work/bal1/a detourer/Tarif - C/Det pour le 02-09_C/.AppleDouble/..Parent.uC5AdD##2014/09/01 17:41:19##created
/ftpo/work/bal1/a detourer/Tarif - C/Det pour le 02-09_C/.AppleDouble/.Creature-0008.eps.ORQk2e##2014/09/01 17:41:19##created
这里的输出是wathdog将更多随机字符串添加到文件名的末尾。
有时我重复创建了事件。
谁知道我该如何解决这个问题?
谢谢
您确定这是一个错误吗?许多FTP服务器首先创建一个临时文件(由“文件名末尾的随机字符”标记),并在上传完成后将其重命名为最终名称。如果是这种情况,您的看门狗显然会捕获正确的事件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句