FTP同步目录减负,动态路径+使用布隆过滤器 + 跳过已复制文件

奥黛丽·逐爱者
2026-07-16 / 0 评论 / 4 阅读 / 正在检测是否收录...

FTP源目录: D:\linux_sync\{业务}\files\YYYY\M(多业务:lsqy、lssj、lsyh、tzjj、tzwl、lsjn 等)
目标目录: D:\ftpfile\{业务}\files\YYYY\M
FTP 策略:每 5 分钟清空 ftpfile,只保留短期文件
目前定时:1 分钟执行一次 Python 脚本
痛点:原脚本每次全量递归 D:\linux_sync ,遍历 3 年历史文件,对每个文件算 MD5 签名,磁盘 IO 和 CPU 消耗越来越大,"扫盘"感明显

布隆过滤器保留:bloom_filter.pkl 继续复用,历史已同步记录不丢失,月初切换目录后旧签名不影响新文件判断
零误判设计:布隆过滤器只用于"跳过已复制",签名包含 相对路径|大小|修改时间,文件修改后会重新复制
日志轮转: D:\sync_config\sync.log 超过 1MB 自动备份为 .old
月初自动切换:8 月 1 号自动扫 20268,无需人工干预;若目录未生成则跳过等待下一周期

1. 模拟测试(先看会复制什么)
cmd
C:\Users\Administrator\AppData\Local\Programs\Python\Python312\python.exe D:\sync_config\sync.py -d
2. 正式运行
cmd
C:\Users\Administrator\AppData\Local\Programs\Python\Python312\python.exe D:\sync_config\sync.py
3. 重置过滤器(全量重新复制)
cmd
C:\Users\Administrator\AppData\Local\Programs\Python\Python312\python.exe D:\sync_config\sync.py --reset
4. 查看过滤器状态
cmd
C:\Users\Administrator\AppData\Local\Programs\Python\Python312\python.exe D:\sync_config\sync.py --status

程序:C:\Users\Administrator\AppData\Local\Programs\Python\Python312\python.exe
参数:D:\sync_config\sync.py
起始目录:D:\sync_config
频率:每 1 分钟
超时限制:2 分钟(防止异常挂起)

0

评论 (0)

取消