本文演示如何使用 rclone 将服务器上的某个文件夹每天备份到 Google Drive,并通过 crontab 自动化执行。
步骤 1️⃣:在 Windows 上配置 rclone
- 下载并解压 rclone 到 Windows 电脑。
- 打开 CMD 或 PowerShell,运行:
rclone config
- 新建 remote,配置 Google Drive,例如命名为
gdriver:- 选择自动认证(Yes),浏览器登录 Google
- 完成后 rclone 会生成配置文件
rclone.conf
- 配置文件默认位置:
C:\Users\<用户名>\.config\rclone\rclone.conf
如果找不到,可以使用命令查看:
rclone config file
⚠️ 注意:一定要在 Windows 上完成 Google Drive 授权。
步骤 2️⃣:将配置文件拷贝到服务器
- 在服务器上创建 rclone 配置目录(如果不存在):
mkdir -p ~/.config/rclone
- 上传 Windows 上的
rclone.conf文件到服务器:
scp C:\Users\<用户名>\.config\rclone\rclone.conf ubuntu@服务器IP:~/.config/rclone/rclone.conf
步骤 3️⃣:在服务器上测试 rclone 配置
运行:
rclone ls gdriver:
- 如果能列出 Google Drive 文件,说明配置成功 ✅
之后就可以使用 rclone 进行文件备份。
步骤 4️⃣:创建备份脚本
在服务器上新建脚本,例如:
vim ~/sh_scripts/rclone_Bitwardon.sh
将下面内容粘贴进去:
#!/bin/bash
# 定义变量
SRC_DIR="/home/ubuntu/dockers/bitwarden/vw-data" # 需要备份的目录
DEST_DIR="gdriver:/Bitwardon" # Google 云盘上的备份目录
BACKUP_NAME="Bitwardon_backup_$(date +'%Y%m%d%H%M').tar.gz" # 备份文件名
BACKUP_PATH="/tmp/$BACKUP_NAME" # 本地临时存储路径
# 1. 压缩文件
sudo tar -czf "$BACKUP_PATH" "$SRC_DIR"
# 2. 上传到 Google 云盘
rclone copy "$BACKUP_PATH" "$DEST_DIR"
# 3. 删除本地备份
sudo rm -f "$BACKUP_PATH"
# 4. 只保留 Google 云盘上最新的 10 个备份
rclone ls "$DEST_DIR" --max-depth 1 | sort -k2 | head -n -10 | awk '{print $2}' | while read -r file; do
rclone delete "$DEST_DIR/$file"
done
echo "Backup completed: $BACKUP_NAME"
保存并赋予执行权限:
chmod +x ~/sh_scripts/rclone_Bitwardon.sh
步骤 5️⃣:使用 crontab 自动每天执行
- 编辑 crontab:
EDITOR=vim crontab -e
- 添加以下任务,每天 12:00 自动执行备份脚本:
0 12 * * * /home/ubuntu/sh_scripts/rclone_Bitwardon.sh
- 保存退出,Crontab 会自动生效。
注意事项
- 确认
SRC_DIR路径正确,否则 tar 会报错Cannot stat: No such file or directory - 如果使用默认 rclone
client_id,Google Drive 每分钟请求有配额限制,容易报错RATE_LIMIT_EXCEEDED- 建议注册自己的 Google Cloud 项目,生成
client_id和client_secret
- 建议注册自己的 Google Cloud 项目,生成
- 本脚本会在 Google Drive 目录只保留最新的 10 个备份,避免占用过多空间
✅ 完成以上步骤后,你的服务器就可以每天自动备份指定文件夹到 Google Drive。









