Pixel二级备份
23 Dec 2025这篇记录一条用 Pixel 旧机做二级备份的完整方案:为家里 NAS 上部署的 Immich 建立一条 Immich 原图 → Pixel 手机 → Google Photos 的备份通道。重点放在整套方案的实现路径(已脱敏),包括目录可识别、自动更新、硬链接节省空间等关键细节。
已对域名、IP、设备 ID、证书路径等敏感信息脱敏;路径与变量请按你环境替换。
1) 痛点与误区
- Immich 的
upload目录是哈希分片结构,目录名不可读。 - Google Photos 的“备份设备文件夹”开关是按“直接包含媒体文件的父目录”分桶;
upload根目录里没有媒体文件,所以看不到一个统一的可勾选目录。 - Android 上
Download目录常常不被识别,DCIM/Pictures更稳。 upload目录大小可能远小于“Immich 总占用”,因为后者包含缩略图/转码/外部库。
2) 二级备份方案概览
- NAS 上运行 Syncthing(Docker),通过 HTTPS 访问管理界面。
- 生成一个“可读导出视图”(按日期目录),用硬链接避免复制大文件。
- systemd 定时任务每小时更新导出视图。
- Syncthing 分享导出视图(Send Only)到 Pixel 手机(Receive Only)。
- Google Photos 只需要备份 一个清晰目录,完成二级备份闭环。
3) 导出视图(硬链接)
核心思路:把 upload 的文件按日期映射到新目录,例如:
/export/by-date/2025/12/23/xxx.jpg
优点:
- 同盘硬链接几乎不占额外空间。
- Google Photos 可以识别“按日期目录”。
限制:
- 需要在同一文件系统。
- 若删除原文件,硬链接仍占空间(需同步清理导出目录)。
示例脚本(按文件 mtime 归档,注意不是 EXIF):
#!/bin/sh
SRC="/data/immich/library/upload"
DEST="/data/immich/export/by-date"
mkdir -p "$DEST/.stfolder"
find "$SRC" -type f ! -name ".*" | while IFS= read -r f; do
mtime=$(stat -c %y "$f" 2>/dev/null) || continue
date_part=${mtime%% *}
yyyy=${date_part%%-*}
rest=${date_part#*-}
mm=${rest%%-*}
dd=${date_part##*-}
dest_dir="$DEST/$yyyy/$mm/$dd"
dest_file="$dest_dir/$(basename "$f")"
if [ ! -e "$dest_file" ]; then
mkdir -p "$dest_dir"
ln "$f" "$dest_file" 2>/dev/null || true
fi
done
4) 定时任务(每小时更新)
用 systemd timer 更稳:
# /etc/systemd/system/immich-export-sync.service
[Unit]
Description=Immich export view sync (hardlinks)
[Service]
Type=oneshot
Nice=10
ExecStart=/bin/sh /data/immich/export/sync-export.sh
# /etc/systemd/system/immich-export-sync.timer
[Unit]
Description=Run Immich export sync hourly
[Timer]
OnCalendar=hourly
Persistent=true
RandomizedDelaySec=300
[Install]
WantedBy=timers.target
启用:
systemctl daemon-reload
systemctl enable --now immich-export-sync.timer
5) Syncthing 配置要点
NAS 端(发送):
- Folder Path:
/immich-export - Folder Type:
Send Only
手机端(接收):
- Folder Path:
/storage/emulated/0/DCIM/ImmichOriginals - Folder Type:
Receive Only - Ignore Permissions: 开启
重要提示:
- 只读目录需要
.stfolder标记,可在 NAS 上手动创建一次。 - Google Photos “释放设备空间”后,Syncthing 会看到本地删除,不要点 Revert Local Changes。
6) Google Photos 侧操作
- Photos → 设置 → 备份 → 备份设备文件夹
- 开启
ImmichOriginals
如果目录没出现:
- 确保目录内已有媒体文件
- 确认权限“照片和视频”已允许
- 必要时触发媒体扫描或重启
7) 最终效果
- NAS 自动生成“按日期”导出目录。
- 手机只备份一个清晰目录,Google Photos 识别正常。
- 不额外占 NAS 大量空间。
8) 可选优化
- 如果你只想一个“单层目录”,可以改成扁平导出(仍是硬链接)。
- 若需要“按 EXIF 拍摄时间”归档,可用
exiftool生成日期目录。
这条流水线把“Immich 的工程目录”变成“Google Photos 友好目录”, 让备份这件事从一次性折腾变成持续可用。