安全网——拒绝裸 --delete 的 rsync 生成器
输入路径、排除、带宽——输出一条可直接粘贴的命令;默认 dry-run,而且每个 --delete 都带着带日期的备用网,让镜像可回退。
■ space · 安全网
默认 dry-run、显式的上膛一步、外加备用网——生成器拒绝吐出裸的 --delete。
这张网是两个旗标——--backup --backup-dir=DEST/_rsync_backup_$(date +%F)——本该被删的文件,rsync 会搬进那个带日期的文件夹,而不是抹掉。
输入路径、远程主机、排除和带宽上限;输出一条可直接粘贴的命令。你敲的东西不出页面。
为什么 --delete 该挂个警告
因为 rsync 的契约是让目的地对齐来源,--delete 把它扩展到了删除。man 页写着:"delete extraneous files from the destination dir."
Extraneous = 来源里没有的东西——包括那些因你指错来源、插错 U 盘或把路径打错而「不在」的东西。
有个第一页的生成器甚至给输出贴着「AI-generated and not yet checked for validity」的标签——就悬在一条删除命令上方。真正闯祸的四个旗标:
| 旗标 | 它做什么 | 你搞错时它做什么 |
|---|---|---|
--delete | 来源里没有的目的地文件被移除 | 来源路径错 → 目的地文件成 "extraneous" → 没了 |
src/ vs src | 结尾斜杠复制内容;不写则复制目录本身 | 一个字符,目的地布局完全两样 |
-a | 归档:递归 + 权限、时间、属主、符号链接 | 漏掉 → 一个静悄悄的不是备份的「备份」 |
--partial | 中断时保留传了一半的文件 | 链路抽风 → 整个传输从零重来 |
结尾斜杠那一行是经典。rsync 文档说来源上的结尾斜杠 "changes this behavior to avoid creating an extra directory at the destination."
说人话:src/ 把内容倒进目的地;src 则造出 dest/src 再把内容倒进去。两个字符。
下面的机器会随你敲字标出适用的是哪句——结尾斜杠吃掉的家目录比 rm -rf 干过的都多。
安全网
路径进,可直接粘贴的命令出。命令带着 -n:先读会发生什么,再拨上膛开关。
只要 --delete 在场,生成器就拒绝吐裸删除——网会自己挂上。
安全地上膛一次删除:不是撤掉安全,而是加一张网。带上 --backup --backup-dir,被删或被覆盖的文件会先搬进带日期的文件夹。
镜像最后照样是精确的。可回退,就是镜子和记忆之间的差别。
# the record's worked example — armed, net attached:
rsync -a --delete \\\
--backup --backup-dir=/mnt/backup/_rsync_backup_$(date +%F) \\\
/mnt/usb/ /mnt/backup/
验证:man rsync → --backup 写着 "make a backup of every file installed" · --backup-dir 的行会落进 DEST/_rsync_backup_<date>/,而非虚空
生成器接了哪些线
覆盖几乎每一次真实传输的那一套,按你实际下决断的方式分组:
- 路径——任一侧可本地可远程(
user@host:/path),SSH 端口不是 22 时经-e "ssh -p 2222"接入。 - 方向——结尾斜杠的拨杆,内容还是目录的判句实时打出。
- 过滤器——
--exclude模式,为惯犯备好预设:.git、node_modules、缓存、日志。 - 规矩——
-z压缩、--bwlimit让凌晨三点的备份别挤满网络、-P看进度和续传、-c防mtime撒谎。 - 上膛道——默认 dry-run,上膛一步显式走,网自动挂到每个
--delete上。
和 GGUF VRAM 计算器一样:单个 HTML 文件在你的浏览器里做算术——你敲的东西不出页面,因为关乎安全拷贝的工具不该往家里打电话。
MIT,单文件,无构建步骤,在 github.com/mrsaynothing/rsync-builder。要是上膛流程让你觉得絮叨,那就是那项功能在干活。
它在工具箱里的位置
生成器写命令;同门保管理论。Rsync 与 scp——差量传输为什么赢过笨拷贝,以及 scp 何时够用。
Cron 与 systemd timers 是排程那一半;「跑没跑」的日志那一半,在 journalctl 速查表里。
你跳过的那个 dry-run,就是你没有本意的删除。
安全网至此落幕 · 没有联网取过什么 · 全程本地