备份计划
项目介绍
通过程序对文件夹进行自动备份 <br>
目前支持 定时自动备份 及 监控自动备份 <br>
目前支持 webdav同步保存备份 及 samba同步保存备份<br>
目前支持以下压缩格式 zip, tar.gz, tar.bz2, tar.xz, 7z <br>
目前支持以下格式加密压缩 zip, 7z<br>
绝不是因为不会用FreeFileSync GoodSync<br>
本项目开源 仓库地址
项目更新
更新内容(v1.0.1):
- 代码重构 降低耦合度
- 添加组件单元测试
- 配置加密保存
- 添加最小化到托盘
- 添加 zip, 7z 格式的加密压缩
- 添加 webdav 服务支持
- 添加 samba 服务支持
- 添加场景切换
- 修复部分已知错误
补充说明1
看到大佬们问的一些问题 补充回答一下
- 和 freefilesync, goodsync, filegee 的区别和特色
区别就是全是区别 特色就是没有特色
就像我一开始说的这个其实是我实在用不懂 freefilesync
所以干脆自己写个符合自己要求的简单程序
目前对我来说它是及格的
<br> - ubuntu 等 linux 平台可不可以运行
可以 若有需要请前往仓库地址 Release 中找到编译好的 Linux端程序<br>
可能存在依赖性问题 可以尝试运行下述命令安装部分依赖<br>
sudo apt install --reinstall libxcb-xinerama0```
补充说明2
看评论有对FTP, 增量备份或使用方法有需求或疑问的 在此补充说明 <br>
- FTP 增量备份等功能会不会有? 什么时候有? <br>
这些功能后续可能有 但目前没有时间精力做 本职工作重要 <br>
有兴趣自己做的我可以大概说一下<br>
FTP 直接添加模块 再写好关联函数就行 增量备份和监控备份有很大相似之处 只要备份前检查目录快照即可<br> - 能否保证备份效果 如Excel等软件? <br>
对于专业软件请更多依靠其自身备份功能,不保存前所有你的输入都在缓冲区还没写到真正的文件里 <br>
这个时候触发的备份是不会记录你的输入的 <br> - 更多定制化功能 如保存文件命名方式等 <br>
同1 没有时间精力做 感兴趣可以自己改 <br>
应该是修改 uitls/compressor.py 里面的保存方式就可以了 再把 collector.py 里的正则表达式改掉<br>
安装教程
下载压缩包,解压后直接运行即可 <br>
仓库地址中 Release 可以下载编译好的 Windows端 和 Linux端程序<br>
Backup-Schedule v1.0.1 提取码: 63m1
使用说明
- 主界面操作 <br>
运行 main.exe 进入主界面 数据以表格形式进行展示<br>
右键打开功能菜单可以实现计划的增删改查及远程服务设置 右上角下拉菜单可以实现场景切换<br>
- 管理计划 <br>
功能菜单中选择新建进入新建计划界面 根据需要填写相关参数<br>
在主界面中选中某一行 此时可以通过右键功能菜单 实现计划配置的修改及删除<br>
在主界面中鼠标双击某一行可直接进入对于计划配置修改界面<br>
- 远程同步 <br>
功能菜单中选择 远程 进入远程服务设置界面 勾选对应选择框并填写相关参数后确认即可<br><br>
Webdav服务以 坚果云 为例 需填写 服务器地址 保存根目录 用户名 以及 用户密码<br>
在坚果云网页端找到 账户信息 -> 安全选项 -> 添加应用 -> 得到密码<br>
填写示例:<br>
host config: https://dav.jianguoyun.com/dav/;/Target<br>
username: 123456789@abc.com<br>
password: 123456<br>
Samba服务 需填写 服务器地址 端口 远程文件夹名称 保存根目录 用户名 以及用户密码<br>
填写示例:<br>
host config: 192.168.1.6;445;remote_folder;/Target<br>
username: abcde<br>
password: 123456<br><br>
当远程服务成功添加后 程序将会在指定根目录下创建 Backup-Schedule 目录 并根据计划名称创建子文件夹<br>
子文件夹结构与本地备份保存目录结构一致<br>
- 计划信息提示 <br>
主界面表格对应位置悬停可查看相应信息<br>
状态 -> 下次执行时间/上次修改时间<br>
源目录/保存目录 -> 完整目录路径<br>
备份数/备份大小 -> 本地目录 Webdav目录 Samba目录下存在的备份数量及其大小<br>
- 自动执行计划 <br>
当计划检测到 触发条件 即 到达定时时间 或 文件夹内容存在修改 将自动执行备份操作 <br>
备份文件将按照规定格式及计划指定的目录进行保存<br>
注意事项
-
为避免占用过多系统资源 限制同时最多存在 十个定时任务 <br>
如果确有需求 修改如下位置代码后自行编译运行即可//utils\runner.py line 23
executors = {
'default': ThreadPoolExecutor(10)
} -
如果你想自动备份的文件夹是 需要编译的工程 比如 KEIL工程等<br>
不建议使用监控任务 的触发方式
如果确有需求 修改如下位置代码后自行编译运行即可 请确保定时器时间大于或等于编译时间//utils\monitor.py line 38
self.timer = threading.Timer(3, self.check_snap_shot) -
监控触发方式 将监控 指定文件夹下的所有文件 包括其子文件夹及子文件夹下所有文件 <br>
请避免同时需要监控的文件过多占用大量系统资源 -
远程同步备份不受限制 当计划存在限制条件时 远程的备份不会自动同步进行限制即不会限制其数量/大小 <br>