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

3.4 KiB
Raw Permalink Blame History

Linux 本机与 Google Drive 双向同步配置总结

实现的功能

本机文件夹与 Google Drive 文件夹之间的全自动双向同步

  • 本机路径:/home/chen/AI-document/学习笔记
  • Google Drive 路径:gdrive:学习笔记
  • 同步方向:双向(任意一侧的新增、修改、删除都会同步到另一侧)
  • 触发方式:每 15 分钟自动执行一次,也可手动触发
  • 冲突处理:以修改时间较新的文件为准

实现方式

核心工具:rclone

rclone 是一个开源命令行工具,支持与数十种云存储服务同步文件,包括 Google Drive。本方案使用其 bisync(双向同步)功能。

整体架构

本机文件夹  ⇄  rclone bisync  ⇄  Google Drive

cron 定时任务每 15 分钟调用一次同步脚本,脚本调用 rclone bisync 执行双向同步,结果写入日志文件。


配置步骤

1. 安装 rclone

curl https://rclone.org/install.sh | sudo bash

2. 配置 Google Drive 远程

rclone config

交互式配置过程:

  • 新建远程,命名为 gdrive
  • 类型选 driveGoogle Drive,选项 24
  • client_id 和 client_secret 留空(使用内置密钥)
  • scope 留空(默认完整访问权限)
  • 使用浏览器完成 OAuth 授权
  • 不配置为 Shared Drive

配置完成后可用 rclone lsd gdrive: 验证连接。

3. 同步脚本

文件位置:~/gdrive_sync.sh

脚本主要逻辑:

  • 使用锁文件防止多个实例同时运行
  • 自动检测是否为首次运行,首次运行时加 --resync 初始化基准
  • 常规运行使用 rclone bisync,冲突以较新文件为准
  • 同步失败时自动尝试 --resync 自修复
  • 日志超过 500 行时自动轮转

核心同步命令:

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_StoreThumbs.dbdesktop.ini
  • 临时文件:*.tmp*.temp~$**.swp

注意:--max-size 不是过滤文件支持的语法,不能写在 filters 文件里,如需限制文件大小请在命令行参数中添加。

5. 定时任务(cron

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

遇到的问题与解决方法

问题 1curl 安装脚本管道卡住

安装命令 curl ... | sudo bash 执行完后终端看起来无响应,实际上 rclone 已安装成功。按 Ctrl+C 中断后运行 rclone version 确认即可。

问题 2:脚本文件找不到

直接 cp gdrive_sync.sh ~/ 因文件不在当前目录而失败。解决方法是用 nano ~/gdrive_sync.sh 直接在目标位置创建文件并粘贴内容。

问题 3filters 文件语法错误

--max-size 1G 不是 rclone filters 文件支持的语法,导致 bisync 报错中止。删除该行后还需清除损坏的状态文件:

rm -rf ~/.cache/rclone/bisync
~/gdrive_sync.sh

配置日期:2026-05-07