Dropbox是Dropbox公司的联机存储服务,通过云计算实现互联网上的文件同步,用户可以存储并共享文件和文件夹。Dropbox提供免费和收费服务,在不同作业系统下有客户端软件,并且有网页客户端。本文主要介绍定时备份网站数据到 Dropbox 的方法,自己测试用了下,还是挺好用的。之前是打包 scp 到不同 VPS 上备份,现在可以省掉了,似乎这样数据可靠性也更好,推荐使用!
Dropbox 免费用户默认有 2GB 储存空间,可以通过邀请朋友增加至最多 16 GB。如果上传文件名是相同的,还可以查看 30 天内的不同版本,类似于文件快照,这个不重复占用空间。
在 Linux 上使用 Dropbox 虽然官方也有客户端,但测试下来 VPS 使用比较复杂。首先需要先运行 Dropbox 守护程序,配合浏览器访问登录授权链接,然后再用 Python 脚本控制。使用体验没有 Dropbox Uploader 这个开源 BASH 脚本好用,下面介绍的是后者使用方法。
创建 Dropbox 应用以获得 API Token
登录 Dropbox 账户,访问 Developers 页面,点击右上角 App console,创建一个应用。
创建选项如下。其中 API 可访问范围建议仅限于应用文件夹,这样符合权限最少够用原则。
在应用设置界面找到 Generated access token,点击生成 Access Token 字符串复制备用。
运行 Dropbox Uploader 配置向导
下载 Dropbox Uploader 脚本,赋予可执行权限,然后运行脚本。
curl "https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh chmod +x ./dropbox_uploader.sh ./dropbox_uploader.sh
在脚本交互提示中输入之前生成的 Access Token。之后便可以开始使用了。
This is the first time you run this script, please follow the instructions: 1) Open the following URL in your Browser, and log in using your account: https://www.dropbox.com/developers/apps 2) Click on "Create App", then select "Dropbox API app" 3) Now go on with the configuration, choosing the app permissions and access restrictions to your DropBox folder 4) Enter the "App Name" that you prefer (e.g. MyUploader22016222946048) Now, click on the "Create App" button. When your new App is successfully created, please click on the Generate button under the 'Generated access token' section, then copy and paste the new access token here: # Access token: 此处粘贴你的 Access Token > The access token is xxxxxxxxxxxxxx. Looks ok? [y/N]: 按 y 确认输入 The configuration has been saved.
配置文件位于~/.dropbox_uploader
,日后若要更改 Access Token,直接修改该文件即可。
掌握 Dropbox Uploader 命令语法
下面<...>
部分为必要参数,[...]
为可选。懒得看的可直接查看最后使用例子。
命令语法
./dropbox_uploader.sh [可选参数] <操作选项>
可选参数
-f <文件名>
:加载指定配置文件-s
:上传 / 下载时跳过已存在文件(默认覆盖)-d
:启用调试模式-q
:安静模式,不显示进度信息-h
:以易读格式显示文件大小-p
:显示 cURL 进度信息-k
:不检查 SSL 证书(不安全)-x <文件或目录名>
:排除指定文件或目录的同步
操作选项
upload <本地文件或目录> <远程文件或目录>
:上传,支持使用通配符download <远程文件或目录> [本地文件或目录]
:下载delete <远程文件或目录>
:删除move <远程文件或目录> <远程文件或目录>
:移动copy <远程文件或目录> <远程文件或目录>
:复制mkdir <远程目录名称>
:创建目录list [远程目录名称]
:列出文件monitor [远程目录] [超时时间]
:检视远程目录中的更改share <远程文件>
:创建文件共享链接saveurl <URL> <远程目录>
:下载文件到远程目录search <关键词>
:搜索远程内容info
:查询绑定 Dropbox 账户信息space
:查询 Dropbox 存储容量unlink
:取消绑定 Dropbox 账户
使用例子
# 上传文件 ./dropbox_uploader.sh upload /etc/passwd /myfiles/passwd.old # 上传带特殊字符文件 ./dropbox_uploader.sh upload "My File.txt" "My File 2.txt" # 下载文件 ./dropbox_uploader.sh download /backup.zip # 删除远程文件 ./dropbox_uploader.sh delete /backup.zip # 创建远程目录 ./dropbox_uploader.sh mkdir /myDir/ # 为远程文件创建分享链接 ./dropbox_uploader.sh share file.txt # 列出远程目录文件 ./dropbox_uploader.sh list
创建网站数据备份脚本并设置定时运行
创建一个网站备份脚本site_data_backup.sh
,内容如下(按需修改其中内容)。
#!/usr/bin/env bash # 导出完整数据库 # 若要备份单个数据库,用数据库名称替换其中 --all-databases 参数 mysqldump --user=root --password=123456 --all-databases > /root/db-backup.sql # 打包备份文件 # 内容清单:/var/www(网站目录),/etc/nginx/conf.d( Nginx 配置文件),/root/db-backup.sql(数据库文件) tar -zcpf /root/site-backup-$(date +%Y%m%d_%H%M%S).tgz -C /var www -C /etc/nginx conf.d -C /root db-backup.sql # 清理导出数据库 rm -f /root/db-backup.sql # 将备份文件上传到 Dropbox 网盘 cd /root && ./dropbox_uploader.sh upload /root/site-backup-*.tgz /
赋予脚本可执行权限。
chmod +x ./site_data_backup.sh
crontab -e
添加定时执行任务。每个月运行一次备份并上传至 Dropbox 网盘。
0 0 1 * * /root/site_data_backup.sh 2>&1 >> /root/backup.log
搬瓦工优惠/性价比套餐推荐
搬瓦工优惠码:BWH3HYATVBJW,优惠6.58%,全场可用。下面表格整理了更多的搬瓦工优惠套餐。
方案 | 内存 | CPU | 硬盘 | 流量/月 | 带宽 | 机房 | 价格 | 购买 |
---|---|---|---|---|---|---|---|---|
CN2 (最便宜) |
1GB | 1核 | 20GB | 1TB | 1Gbps | DC3 CN2 DC8 ZNET |
$49.99/年 | 购买 |
CN2 | 2GB | 1核 | 40GB | 2TB | 1Gbps | $52.99/半年 $99.99/年 |
购买 | |
CN2 GIA-E (最推荐) |
1GB | 2核 | 20GB | 1TB | 2.5Gbps | DC6 CN2 GIA-E DC9 CN2 GIA 日本软银 JPOS_1 联通荷兰 EUNL_9 |
$49.99/季度 $169.99/年 |
购买 |
CN2 GIA-E | 2GB | 3核 | 40GB | 2TB | 2.5Gbps | $89.99/季度 $299.99/年 |
购买 | |
HK | 2GB | 2核 | 40GB | 0.5TB | 1Gbps | 香港 CN2 GIA | $89.99/月 $899.99/年 |
购买 |
HK | 4GB | 4核 | 80GB | 1TB | 1Gbps | $155.99/月 $1559.99/年 |
购买 |
选择建议:
- 入门:洛杉矶 CN2 套餐,目前最便宜,可选 CN2 GT 机房,入门之选。
- 推荐:洛杉矶 CN2 GIA-E 套餐,价格适中,速度超快,可选机房多,性价比最高。
- 高端:香港 CN2 GIA 套餐,价格较高,但是无可挑剔。