# FileCheck **Repository Path**: NiuWaJun/FileCheck ## Basic Information - **Project Name**: FileCheck - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-26 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FileCheck文件变动检测工具 >该工具用于远程检测多台服务器中目录、及其子目录中的文件出现例如新增、删除、修改的变动情况。 # 背景 1、硬件资源紧缺,导致研发、测试、客户环境互相复用 2、版本包质量不高,环境存在私自换包或私自更换程序文件现象 基于以上情况,需要一个工具自动化的感知目录中文件的变动情况,及时发现问题、隐患 # 效果展示 - 待检测目录下文件修改次数统计 ![待检测目录下文件修改次数统计.jpg](pic/ufile.jpg "待检测目录下文件修改次数统计.jpg") - 所有文件变化结果展示 ![所有文件变化结果展示.jpg](pic/dfile.jpg "所有文件变化结果展示.jpg") - 所有文件变化结果展示-简化版 ![所有文件变化结果展示-简化版.jpg](pic/sfile.jpg "所有文件变化结果展示-简化版.jpg") - 服务器联通性检测结果展示 ![服务器联通性检测结果展示.jpg](pic/ssh.jpg "服务器联通性检测结果展示.jpg") - result_data 表原始数据 ![表原始数据.jpg](pic/data.jpg "表原始数据.jpg") - select界面结果展示 ![select界面结果展示.jpg](pic/select.jpg "select界面结果展示.jpg") # 工具安装 工具包括: - basic_python_env 虚拟机环境 - UnifiedReport-1.0.0-py2-none-any.whl - FileCheck.zip 工具包 1、安装 basic_python_env 虚拟环境 虚拟化环境集成依赖的第三方库,此处不再详细叙述, 参考链接:http://172.16.111.6:10080/tool-chains/basic_python_env 2、进入虚拟化环境 ``` source /home/virtualEnv/bin/activate ``` 3、安装依赖包 并运行 FileCheck 工具 将 UnifiedReport-1.0.0-py2-none-any.whl 放到任意目录并执行安装命令 ``` pip install UnifiedReport-1.0.0-py2-none-any.whl ``` 在任意目录下解压 FileCheck.zip 包,执行工具命令: ``` nohup python run.py >/dev/null & ``` 4、检测报告界面 运行以下命令,在浏览器打开对应界面即可查看工具检测结果 ``` python showme.py 本机IP ``` | 界面名称 | 地址 | | :----------------------- | ------------------------------------------------------------ | | 待检测目录下文件修改次数统计 | http://本机IP:19678/ufile | | 所有文件变化结果展示 | http://本机IP:19678/dfile | | 所有文件变化结果展示-简化版 | http://本机IP:19678/sfile | | 服务器联通性检测结果展示 | http://本机IP:19678/ssh | # 工具配置 配置文件包括: - **公共配置文件:**conf/common_config.ini ``` [config] # check_cycle:执行周期,只可配置为 single 或者 loop # single:单次任务,配置为此值时工具只运行一次 # loop:周期性任务,配置为此值时,工具按照时间间隔持续运行,需要与 loop_time 循环时间结合使用 ,loop_time 的单位为分钟,默认 60 为 分钟 check_cycle=loop loop_time=60 # 每次检测出的文件信息都保存在 all_data 表,为防止数据量过多导致 db 文件过大问题, # clean_history_data 配置为 True ,支持在每次检测时删除非第一次采集的文件信息 # clean_history_data 配置为 False ,每次检测的中间结果都会保存(现场环境慎用) clean_history_data=True ``` - **检测配置文件:**conf/check_config.ini ``` [172.16.40.3] # 检测服务器用户名 ssh_username=root # 检测服务器密码 ssh_password=Mm123456 # 支持本机多目录检测 check_path=/home/testdata/test3 # 文件后缀过滤,用英文 ; 分隔 filter_file_suffix=log;file # 正则匹配文件名称过滤文件,用英文 ; 分隔 # 默认配置为:.*(.log).*;.*[0-9].*.log 支持过滤掉以下类型文件 # aaa.log.1、bb.20200521.log、ccc-20200521.log、ddd.log.20200521、eee.log.2020-05-21 # 注意:此参数不能配置为空 filter_file_rule=.*(.log).*;.*[0-9].*.log ``` # 运行结果 运行结果保存在 data.db 文件中,包括以下三张表格: | 表名 | 说明 | | :----------------- | ------------------------------------------------------------ | | connect_state_data | 程序每次运行开始时会对配置的所有 IP 做联通性检测,表中保存每次连通性检测的结果 | | all_data | 保存每次检测到的所有文件信息,如果公共配置中 clean_history_data 为 True,该表只保存第一次、近一次的文件信息 | | result_data | 检测结果表,近一次检测信息与第一次检测信息做对比,发现文件有新增、丢失、修改三种情况,分别记录为 new、lose、change | - **connect_state_data:** | 字段 | 说明 | | ------------- | --------------------------------------- | | ip | IP 地址 | | connect_state | 联通状态,成功:"success",失败:"fail" | | capturetime | 工具运行时间,格式:“绝对秒” | | datetime | 工具运行时间,格式:“年-月-日 时:分:秒” | - **all_data:** | 字段 | 说明 | | ----------- | ---------------------------------------- | | ip | IP地址 | | conf_path | 配置的检测路劲 | | file_size | 文件大小 | | file_path | 文件全路劲 | | md5 | 通过 ip、文件路径、文件大小计算得出MD5值 | | capturetime | 工具运行时间,格式:“绝对秒” | | datetime | 工具运行时间,格式:“年-月-日 时:分:秒” | - **result_data:** | 字段 | 说明 | | ----------- | ------------------------------------------------------------ | | ip | IP地址 | | conf_path | 配置的检测路径 | | file_size | 文件大小 | | file_path | 文件全路径 | | md5 | 通过 ip、文件路径、文件大小计算得出MD5值 | | change | 三种状态:change表示文件大小有变化;new表示新增的文件;lose表示文件丢失 | | capturetime | 工具运行时间,格式:“绝对秒” | | datetime | 工具运行时间,格式:“年-月-日 时:分:秒” |