Skip to content

billzi2016/backup-utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

backup-utils

exFAT → APFS 鲁棒备份工具。专为 macOS 上从 exFAT 外盘向 APFS 外盘迁移大量文件设计,遇到错误不中断,全程记录日志。

功能

  • 三级容错拷贝shutil.copy2chmod 后重试 → 系统 /bin/cp -f,全部失败才记录错误
  • 断点续传:目标文件已存在且大小一致则静默跳过,中途中断重跑不从头来
  • 自制进度条:纯标准库实现,无需安装 tqdm 或任何第三方包,原地刷新(同 tqdm 风格),只有错误才插入新行打印完整路径
  • 排除规则外置:编辑 exclude.txt 即可,无需动代码
  • 日志分离:完整日志和错误日志分别写入 logs/ 目录,按时间戳命名
  • 自动忽略点文件.DS_Store._xxxx 等 exFAT 元数据文件全部跳过

目录结构

backup_utils/
├── backup.py       # 主脚本
├── exclude.txt     # 排除目录列表
├── run_backup.sh   # 一键启动脚本
├── README.md
└── logs/           # 运行时自动创建
    ├── backup_YYYY-MM-DD_HH-MM-SS.log   # 完整日志
    └── errors_YYYY-MM-DD_HH-MM-SS.log   # 仅错误

使用方法

bash /Volumes/LuZhang/backup_utils/run_backup.sh

或直接:

python3 /Volumes/LuZhang/backup_utils/backup.py

配置排除列表

编辑 exclude.txt,每行写一个源盘根目录下的目录名,# 开头为注释:

# 不需要备份的目录
[只读]原始备份
generated_mri
IU_Datasets

进度条说明

 [████████░░░░░░░░░░░░░░░░░░░░░░░░] 25.0%  250/1000  错误:2  ETA:  90s  /Volumes/LuZhang/vis/brain.nii
  • 进度条分母 = 扫描时排除已完成文件后的真实待复制数量
  • 正常拷贝:原地覆写进度条,不产生新行
  • 发生错误:在进度条上方插入一行错误信息(含完整路径),进度条继续

环境要求

  • macOS + Python 3.9+
  • 无第三方依赖

About

exFAT -> APFS 鲁棒备份脚本,跳过错误文件并记录日志

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors