Files
AI-document/学习笔记/Linux本机与Google Drive双向同步配置总结.md
2026-05-07 12:30:26 +08:00

130 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Linux 本机与 Google Drive 双向同步配置总结
## 实现的功能
本机文件夹与 Google Drive 文件夹之间的**全自动双向同步**:
- 本机路径:`/home/chen/AI-document/学习笔记`
- Google Drive 路径:`gdrive:学习笔记`
- 同步方向:双向(任意一侧的新增、修改、删除都会同步到另一侧)
- 触发方式:每 15 分钟自动执行一次,也可手动触发
- 冲突处理:以修改时间较新的文件为准
---
## 实现方式
### 核心工具:rclone
[rclone](https://rclone.org/) 是一个开源命令行工具,支持与数十种云存储服务同步文件,包括 Google Drive。本方案使用其 `bisync`(双向同步)功能。
### 整体架构
```
本机文件夹 ⇄ rclone bisync ⇄ Google Drive
```
cron 定时任务每 15 分钟调用一次同步脚本,脚本调用 rclone bisync 执行双向同步,结果写入日志文件。
---
## 配置步骤
### 1. 安装 rclone
```bash
curl https://rclone.org/install.sh | sudo bash
```
### 2. 配置 Google Drive 远程
```bash
rclone config
```
交互式配置过程:
- 新建远程,命名为 `gdrive`
- 类型选 `drive`Google Drive,选项 24
- client_id 和 client_secret 留空(使用内置密钥)
- scope 留空(默认完整访问权限)
- 使用浏览器完成 OAuth 授权
- 不配置为 Shared Drive
配置完成后可用 `rclone lsd gdrive:` 验证连接。
### 3. 同步脚本
文件位置:`~/gdrive_sync.sh`
脚本主要逻辑:
- 使用锁文件防止多个实例同时运行
- 自动检测是否为首次运行,首次运行时加 `--resync` 初始化基准
- 常规运行使用 `rclone bisync`,冲突以较新文件为准
- 同步失败时自动尝试 `--resync` 自修复
- 日志超过 500 行时自动轮转
核心同步命令:
```bash
rclone bisync "$LOCAL_DIR" "$REMOTE_DIR" \
--log-level INFO \
--log-file "$LOG_FILE" \
--conflict-resolve newer \
--filters-file "$HOME/.gdrive_sync_filters"
```
### 4. 过滤规则
文件位置:`~/.gdrive_sync_filters`
默认排除以下内容:
- 系统文件:`.DS_Store``Thumbs.db``desktop.ini`
- 临时文件:`*.tmp``*.temp``~$*``*.swp`
> 注意:`--max-size` 不是过滤文件支持的语法,不能写在 filters 文件里,如需限制文件大小请在命令行参数中添加。
### 5. 定时任务(cron
```bash
crontab -e
```
添加:
```
*/15 * * * * /bin/bash /home/chen/gdrive_sync.sh >> /dev/null 2>&1
```
---
## 日常使用
| 操作 | 命令 |
|------|------|
| 手动触发同步 | `~/gdrive_sync.sh` |
| 查看同步日志 | `cat ~/.gdrive_sync.log` |
| 查看定时任务 | `crontab -l` |
| 修改定时任务 | `crontab -e` |
---
## 遇到的问题与解决方法
### 问题 1:curl 安装脚本管道卡住
安装命令 `curl ... | sudo bash` 执行完后终端看起来无响应,实际上 rclone 已安装成功。按 `Ctrl+C` 中断后运行 `rclone version` 确认即可。
### 问题 2:脚本文件找不到
直接 `cp gdrive_sync.sh ~/` 因文件不在当前目录而失败。解决方法是用 `nano ~/gdrive_sync.sh` 直接在目标位置创建文件并粘贴内容。
### 问题 3filters 文件语法错误
`--max-size 1G` 不是 rclone filters 文件支持的语法,导致 bisync 报错中止。删除该行后还需清除损坏的状态文件:
```bash
rm -rf ~/.cache/rclone/bisync
~/gdrive_sync.sh
```
---
*配置日期:2026-05-07*