一个用go写的非常简单的文件检查脚本。
注意: windows系统需把 lib/func.go
所注释的部分代码去掉才能够正常编译,Linux 开箱即用就行了
-
当遇到以下情况时,会进行文件替换(复原):
- 文件/目录权限发生变化
- 文件/目录最后修改时间发生变化
- 文件/目录所有者发生变化(仅限Linux)
- 文件内容发生变化
- 文件/目录被删除
当遇到以下情况时,会进行文件删除(需要时会恢复):
- 文件/目录被更名
- 未被记录的文件/目录被添加
-
会根据交互、变化以及处理情况生成实时日志记录
-
当执行检查后会生成指定的hash文件,该文件记录主要的配置参数以及需检查目录中各个目录/文件的数据,当二次或往后再次执行监控检查时可通过加载该hash文件继续进行上一次的监控检查。
-
即默认配置文件,需放在和该文件同一目录下(或直接手动输入参数也可),其配置格式如下
{ "check_dir":"[需检查目录]", "log_dir":"[用作存储日志的目录]", "back_dir":"[用作备份的目录]", "log_file_name":"[日志文件名称]", "hash_file":"[用作记录各个文件hash值文件(可作为存档)的路径]", "coroutines":"[主动检查|被动检查|替换协程数]", "time_sec":"[检查间隔(秒)]" }
-
- 需检查目录 > 需要实时监控、恢复的目录
- 日志存储目录 > 用来存储日志文件的目录
- 日志文件名称 > 日志文件的名称,可以按照自己的想法自定义格式
- hash文件 -> 存储需检查目录中各个目录、文件数据的存档文件
- 备份目录 > 用来存放需检查目录的备份的目录,需要依靠其进行目录或文件的恢复
- [主动检查|被动检查|替换协程] >
- 主动检查 > 遍历存储的数据进行检查
- 被动检查 > 遍历需检查目录的各个文件进行检查
- 替换 > 当检查到有差异时从备份目录选取正确的目录或文件进行恢复
- 检查时间间隔 > 主动检查以及被动检查的频率(秒)
本项目仅是练手玩意,以便我自己学习与交流.