使用 Rclone + systemd 将任意 Linux 文件夹同步到 Google Drive
发布: (2025年12月7日 GMT+8 18:58)
3 min read
原文: Dev.to
Source: Dev.to
安装 rclone
sudo apt install rclone
检查版本:
rclone version
配置 Google Drive
运行配置向导:
rclone config
- 选择 n) New remote 并将名称设为
gdrive。 - 选择远程类型
drive。 - 对以下提示使用默认值:
- Client ID:直接 Enter
- Client Secret:直接 Enter
- Scope:
1) Full access - Use auto config:Yes(rclone 会打开浏览器让你登录并授权)
- Configure as a Shared Drive?:No
- Keep this remote?:Yes
验证远程:
rclone lsd gdrive:
你应该能看到 Drive 中的文件夹。
选择要自动同步的文件夹
本地示例文件夹:
/home/arunkrish/workspace
它将上传到远程路径:
gdrive:workspace
为什么不使用 sync?
rclone sync 会镜像源目录,意味着本地删除的文件也会在 Google Drive 上被删除——这不适合作为备份。
相反,使用 rclone copy,它只会上传新文件或已更改的文件,永远不会删除远程上的任何内容。
创建 systemd 自动上传服务
Service 单元
mkdir -p ~/.config/systemd/user
nano ~/.config/systemd/user/gdrive-workspace.service
添加以下内容:
[Unit]
Description=Upload workspace to Google Drive
[Service]
Type=oneshot
ExecStart=/usr/bin/rclone copy /home/arunkrish/workspace gdrive:workspace --verbose --create-empty-src-dirs
Timer 单元
nano ~/.config/systemd/user/gdrive-workspace.timer
添加以下内容:
[Unit]
Description=Run workspace uploader every 5 minutes
[Timer]
OnBootSec=2min
OnUnitActiveSec=5min
[Install]
WantedBy=timers.target
启用并启动定时器
systemctl --user enable --now gdrive-workspace.timer
确认所有定时器
systemctl --user list-timers
你应该能在列表中看到 gdrive-workspace.timer。
智能自动同步工作原理
- Internet OFF → rclone 等待。
- Internet ON → rclone 上传新文件。
- 已上传的文件 不会 再次上传。
- 本地删除的文件 不会 在 Drive 上被删除。
这提供了真正的云备份行为。
随时暂停同步(低流量模式)
暂停自动上传:
systemctl --user stop gdrive-workspace.timer
恢复:
systemctl --user start gdrive-workspace.timer
永久禁用:
systemctl --user disable gdrive-*.timer
手动上传(可选)
立即强制上传:
rclone copy /home/arunkrish/workspace gdrive:workspace
总结
将 rclone 与 systemd 结合使用,可为你提供:
- 自动文件夹上传
- 低流量使用
- Drive 上不删除文件(安全备份)
- 离线恢复能力
- 随时暂停/恢复的完整控制
相较于官方同步客户端,这种设置更简洁、更强大。