monitor

command
v0.0.0-...-e50eabf Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 1, 2022 License: MIT Imports: 16 Imported by: 0

README

##文件监控工具

参考了网上很多的代码,学着用golang写的一个简单的文件监控工具,比较简单,使用的fsnotify,主要的功能:

1、监控指定文件夹下,文件的变动,例如:新建文件、文件更改、文件删除以及文件重命名;
2、记录文件的MD5值,并输出到 .csv 文件中;
3、记录文件变动历史;
4、每隔1分钟,发送邮件通知(如果有文件变动);

要监控的文件夹路径需要自己去代码改动,等以后有空写成配置的形式,暂时先这样。

因为fsnotify不会去监听文件夹下的子文件夹(不知道是不是我不会设置),所用我用了比较搓的办法,给每个文件夹一个watcher,当新建子文件夹时,分配一个watcher给子文件夹。

windows和linux下有点小区别:

  • 在windows下,新建一个文件夹后,再重命名文件夹,然后在该文件夹下创建新的文件,fsnotify只会通知重命名之前的文件路径;

例如:在 D:/ 创建一个新的文件夹,文件夹名叫【新建文件夹】,然后重命名为 【test】,进入D:/test/ 目录,创建新的文件 hello.txt,此时fsnotify触发的event.Name 还是 D:/新建文件夹/hello.txt, 而真正的路径却不会重新触发事件,即时在 watcher中Add重命名后的路径,也不会再触发事件,所以我这里给每个文件夹路径都给一个wather。

  • linux下就只用一个watcher,有新的路径需要Add,就直接add进来就OK了。

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL