突破限制:用 Termux 和 rsync 实现 Android 文件的真正增量备份
你是否遇到过这样的烦恼?家里的 NAS 功能强大,但其官方 Android 客户端却往往“偏科”严重——只提供照片备份功能,对于手机里的其他文件,如音乐、文档、下载内容等,要么不支持备份,要么只能让你手动选择并全量上传。这种“一刀切”的备份方式效率极低,尤其是在文件稍作修改后,你无法判断哪些文件变了,只能选择全部覆盖,既浪费时间又消耗带宽。
本文将介绍如何利用 Android 上的终端神器 Termux 和强大的同步工具 rsync,打造一个灵活、高效、真正意义上的增量备份方案,将手机上的任意文件备份到你的 NAS 或 Linux 服务器。
一、前提与痛点:为什么需要自己动手?
1. NAS 客户端的功能局限 大多数 NAS 厂商的开发重心显然在照片和视频上。他们的 App 能智能识别相册新增内容并进行增量备份。但对于 /Music/, /Documents/ 等目录,它们通常只提供一个简单的“文件管理器”式界面,备份依赖于手动上传,缺乏自动化的增量同步机制。
2. “全量覆盖”的效率困境 手动备份意味着你需要记住哪些文件被修改过。如果只是为几首新歌或一个编辑过的文档而重新上传整个文件夹,这种操作无疑是低效且不可持续的。我们需要的是一种类似 git 或数据库增量备份的智能方式:只传输发生变化的部分。
3. 解决方案的曙光:Linux 工具的力量 幸运的是,在 Linux/Unix 世界里,rsync 工具正是解决此问题的黄金标准。它通过比较源文件和目标文件的元数据(如修改时间、大小)或校验和,来精确识别差异,实现增量同步。而 Termux 这个 Android 应用,则提供了一个完美的环境,让我们能在手机上运行这些强大的命令行工具。
二、实战方案:如何搭建手动触发的增量备份通道
整个方案的核心是:在 Termux 中配置 rsync,并通过 SSH 免密登录连接到你的 NAS,实现“一键式”手动增量同步。 这种方式避免了 App 后台保活的问题,更加稳定可靠。
步骤 1:环境准备 (Termux)
- 安装 Termux:从 F-Droid 官方渠道安装。
- 安装必要软件:打开 Termux,执行:bash
pkg update pkg install rsync openssh - 申请存储权限:允许 Termux 访问手机存储。bash执行后,你的手机存储空间会符号链接到 Termux 的
termux-setup-storage~/storage/shared目录。
步骤 2:建立到 NAS 的信任关系 (SSH 免密登录)
这是实现高效同步的关键。我们使用 SSH 密钥进行认证,省去每次备份都要输密码的麻烦。
在 Termux 中生成密钥对:
bashssh-keygen -t ed25519连续按回车,使用默认路径和空密码(如果追求安全性,可以设置密码,但同步时需要手动输入)。
将公钥上传到 NAS:
bashssh-copy-id -p 22 your_username@your_nas_ip_address例如:
ssh-copy-id admin@192.168.1.100。这需要你输入一次 NAS 的登录密码。测试免密登录:
bashssh admin@192.168.1.100如果可以直接登录 NAS,说明配置成功。
步骤 3:编写并保存 rsync 备份脚本
我们将命令保存为脚本,方便每次调用,避免重复输入。
创建备份脚本:
bashnano ~/backup-music.sh在脚本中写入以下内容:
bash#!/bin/bash echo "$(date): 开始同步音乐库..." rsync -avzP \ --delete \ -e ssh \ /data/data/com.termux/files/home/storage/shared/Music/ \ admin@192.168.1.100:/mnt/user/backup/Android/Music/ # 可以根据需要添加更多同步命令 # echo "$(date): 开始同步文档..." # rsync -avzP .../Documents/ .../Android/Documents/ echo "$(date): 同步任务完成。"参数解析:
-avzP:归档模式(保留属性、递归同步) + 压缩传输 + 显示进度。--delete:同步时,删除 NAS 上那些手机里已经不存在的文件(谨慎使用,建议先不加此参数测试)。-e ssh:指定使用 SSH 协议。
给脚本添加执行权限:
bashchmod +x ~/backup-music.sh
步骤 4:如何执行备份(手动触发)
当需要备份时,你只需要:
- 打开 Termux App。
- 运行你写好的脚本:bash
~/backup-music.sh - 屏幕上会实时显示同步进度和文件列表,完成后即可退出 Termux。
这种方式的优势:
- 主动控制:你可以在连接 WiFi 和充电时手动执行,确保备份过程稳定、不耗移动数据。
- 状态可见:实时看到哪些文件被传输,心中有数。
- 无需保活:不依赖 Android 系统的后台机制,避免了被系统“杀掉”的风险,更加稳定。
三、总结与优势
通过这个简单的组合,我们成功打破了 NAS 官方客户端的限制,获得了以下优势:
- 真正的增量备份:rsync 的核心能力,只同步变化的文件,极大节省时间和流量,彻底告别全量覆盖。
- 全文件类型支持:不再局限于照片,音乐、文档、下载内容,任何文件夹都能备份。
- 极高的灵活性与可控性:你可以通过修改 rsync 参数实现各种策略,如排除特定文件 (
--exclude="*.tmp")、基于内容校验 (--checksum) 等。手动触发让你完全掌控备份时机。 - 成本低廉且稳定:完全利用现有工具,无需购买额外服务。手动执行避免了 App 后台运行的种种限制,成功率更高。
这种方法将 Android 设备融入了更强大的 Linux 工具生态,让你真正掌控自己的数据。如果你也苦于手机文件备份的难题,不妨尝试一下这个高效、优雅的解决方案。只需在需要备份时点开 Termux,执行一条命令,即可轻松搞定。