主题模式
Are you an LLM? You can read better optimized documentation at /vps/tools/rclone.md for this page in Markdown format
使用 Rclone 挂载 OneDrive/Google Drive/阿里云盘到 Linux VPS 并配置自动备份
作为一个自建服务、Homelab 或者是站长玩家,数据备份是维持服务器长期稳定运行的生命线。
如果你买的是便宜的 VPS(例如搬瓦工、RackNerd),它们的硬盘空间通常只有 10G-20G,且没有免费的快照备份功能。如果把备份文件存在本地,很容易塞爆硬盘;一旦服务器所在的机房发生火灾或硬盘损坏,数据将彻底丢失。
Rclone 被誉为“云存储界的瑞士军刀”。它能将 OneDrive、Google Drive、阿里云盘、甚至自建的 WebDAV 存储,直接挂载为 VPS 的本地硬盘。通过简单的 Shell 脚本,你就能实现数据库、网站文件每日定时“零成本”自动同步到网盘中。
🛠️ 第一步:在 Linux 服务器上安装 Rclone
Rclone 官方提供了一键安装脚本,支持 Ubuntu、Debian 和 CentOS。
通过 SSH 登录你的服务器,执行以下命令:
bash
curl https://rclone.org/install.sh | sudo bash安装完成后,输入 rclone --version 验证,看到版本号即安装成功。
🔑 第二步:初始化并配置网盘连接(以 OneDrive 为例)
由于大部分 VPS 是没有图形化界面的“无头服务器”(Headless Server),配置时需要使用 Rclone 的授权转发机制。
1. 启动配置向导
在终端中输入:
bash
rclone config2. 添加新远程连接
- 输入
n并回车,新建一个远程存储。 - name(名称):输入一个好记的英文名字,例如
onedrive。 - Storage Type(存储类型):系统会输出一大串支持的网盘列表。找到 Microsoft OneDrive(通常对应的数字是 32 前后,也可以直接输入
onedrive)并回车。 - client_id 和 client_secret:直接留空回车(使用 Rclone 默认公共通道;若需要极度稳定的大带宽,建议自行去 Azure 申请独立 API 密钥)。
- Edit advanced config:输入
n。 - Use auto config:重点!由于 VPS 没有浏览器,这里必须输入
n。
3. 在本地电脑进行网页授权
当你在 VPS 上输入 n 后,终端会输出一行长命令,类似于:
text
rclone authorize "onedrive" "xxxxxxxxxxxxxxx"- 在你的本地 Windows 或 Mac 电脑上,下载并解压对应版本的 Rclone(Rclone 官网下载)。
- 打开本地电脑的终端/命令行,粘贴刚刚从 VPS 复制的那行命令并回车。
- 本地电脑会自动弹出浏览器,引导你登录你的微软账号完成授权。
- 授权成功后,本地电脑终端会输出一大串 JSON 格式的 Token 字符(以
{"access_token":...}开头)。 - 复制该 Token,回到 VPS 的 SSH 终端,将其粘贴进去并回车。
4. 选择 OneDrive 驱动器类型
- 选择存储类型:输入
1(通常选择 OneDrive Personal or Business)。 - 系统会自动搜索到你的 OneDrive 空间(通常显示
0: (personal))。输入0选中。 - 确认配置无误:输入
y保存并退出。
📂 第三步:将网盘挂载为本地磁盘
连接建立后,我们可以用 mount 将其映射为系统目录。
1. 创建本地挂载目录
bash
mkdir -p /mnt/onedrive2. 运行挂载命令
bash
rclone mount onedrive:/backup /mnt/onedrive \
--copy-links \
--no-gzip-encoding \
--no-check-certificate \
--allow-other \
--allow-non-empty \
--vfs-cache-mode writes \
--daemononedrive:/backup:代表你网盘根目录下名为backup的文件夹。/mnt/onedrive:本地映射路径。--vfs-cache-mode writes:开启写入缓存(防大文件上传失败)。--daemon:让挂载进程在后台静默运行。
输入 df -h 查看,你会发现系统多了一个名为 onedrive 的磁盘,容量正是你的网盘大小(5GB 到 5TB 不等)!
🤖 第四步:编写网站与数据库自动备份脚本
挂载好网盘后,我们可以写一个 Shell 脚本,把 VPS 上的重要数据定时打包同步进去。
创建脚本文件:nano /root/auto_backup.sh
写入以下内容(请根据你的实际路径修改参数):
bash
#!/bin/bash
# 1. 定义备份参数
BACKUP_DIR="/tmp/backup_tmp"
DEST_DIR="/mnt/onedrive/server_backups" # 对应 OneDrive 挂载目录下的文件夹
DATE=$(date +%Y%m%d_%H%M%S)
# 网站文件与数据库路径
WEB_DATA="/var/www/html"
DB_USER="root"
DB_PASS="your_mysql_password"
DB_NAME="your_database_name"
# 创建临时备份目录
mkdir -p $BACKUP_DIR
# 2. 导出并压缩数据库
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/db_${DATE}.sql.gz
# 3. 打包压缩网站网页文件
tar -zcvf $BACKUP_DIR/web_${DATE}.tar.gz $WEB_DATA
# 4. 同步至网盘挂载目录
mkdir -p $DEST_DIR
cp $BACKUP_DIR/* $DEST_DIR/
# 5. 清理本地临时文件和网盘中 30 天前的旧备份文件
rm -rf $BACKUP_DIR
find $DEST_DIR -mtime +30 -name "*.gz" -exec rm -rf {} \;
echo "Backup Success at ${DATE}"保存并退出。赋予脚本执行权限:
bash
chmod +x /root/auto_backup.sh⏰ 第五步:设置 Cron 定时任务(每日凌晨运行)
我们通过 Linux 内置的 Crontab,让上述脚本在每天凌晨 3 点自动运行:
- 输入
crontab -e开启定时任务编辑器。 - 在文件最底部添加以下一行:text
0 3 * * * /bin/bash /root/auto_backup.sh > /dev/null 2>&1 - 保存并退出。现在,你就可以安心去睡觉了,你的服务器数据每天都会被自动、无感地备份到云端。
💬 总结
通过 Rclone 挂载云盘,不仅解决了便宜 VPS 硬盘空间严重不足的痛点,更将备份冗余性提升到了最高级别。配合我们之前介绍的 Docker Compose 一键部署模板,在遭遇服务器死机或服务迁移时,你只需在新服务器上恢复网盘里的数据即可满血复活。
延伸阅读推荐:
- 把大模型装进网盘?Jellyfin 配合网盘家庭影院搭建。
- 新手 VPS 防火墙加固配置:开启 UFW 防火墙端口指令汇总。
