如今,各家巨头争相开发云存储平台,加之多年前出现的Onedrive,Google Drive,Dropbox等一系列消费者级别的云存储产品,相信不少人已经把云存储产品作为个人资料保管场所。但是,随着云存储产品的多样化,消费者逐步开始面临如下问题:

  1. 不同的产品存储于不同的平台,难以管理;
  2. 如果某个云产品停止服务,个人数据面临着丢失和被冻结的风险。

为了解决如上问题,我们可以将一份数据存储于多个平台之上,并进行定期更新。rclone为此提供了一个简便的解决方案。rclone是开源软件,可以在rclone.org进行下载预编译版本。

下载与配置 Link to heading

笔者在自己的Linux开发服务器上下载了该程序。安装结束后,运行如下命令进行配置:

rclone config

配置过程十分简单,只需要设置好各平台的Authorization Token即可(消费者级的云存储产品只需使用用户名密码登陆即可自动获取token)。笔者分别配置了Google Drive,Onedrive和Google Cloud Storage。

创建脚本 Link to heading

笔者的计划是天凌晨12点,将笔者Onedrive下名为Important的文件夹单向同步到Google Drive和GCS,因此笔者创建了如下脚本,存于/bin/scripts/sync_important.sh.

#!/bin/bash
rclone sync onedrive:/Files/Important google-cloud:smzfeng/Important --log-file=/tmp/rclone_sync_important.log -v
rclone sync onedrive:/Files/Important google-drive:/Important --log-file=/tmp/rclone_sync_important.log -v

运行该脚本,可以顺利进行同步。

定时运行 Link to heading

为了使得该脚本每日定时运行,我们可以创建一个本机的cron job。在命令行中输入crontab -e进行配置,并在脚本尾部添加:

0 0 * * * /bin/scripts/sync_important.sh

保存后,该脚本就会于每日零时零分自动运行。运行的日志可在/tmp/rclone_sync_important.log获取。