照例说一下需求,最近折腾HEXO博客,辛苦写了不少文章,虽然博客是挂载在coding上,但是源代码还在云主机,总是不放心,哪天数据丢失,估计就惨了,备份又麻烦,如果能实现自动同步就好了。于是我找到了Dropbox。

Dropbox是什么

dropbox简单来说就是一款国外的私有云盘软件,在本地使用dropbox的客户端,跟普通的文件夹一样方便,自动同步到dropbox网络硬盘,相当于本地拥有了一个免费的云存储空间。而且支持几乎所有平台。个人免费空间为2G。 官网地址:https://www.dropbox.com

翻墙

既然是国外的网站,想要使用就需要科学上网了。虽然听说国内已经可以访问了,但是似乎DNS污染严重,也是处于不可用状态。下面是github上更改hosts文件,科学上网的一个项目,可以实现翻墙,请自行学习。 最新可用的google hosts文件 https://github.com/racaljk/hosts/

Linux下替换hosts文件

介绍一下linux下的hosts替换脚本,很方便。

wget https://raw.githubusercontent.com/racaljk/hosts/master/tools/lhosts  # 下载替换脚本
sh lhosts     # 运行脚本,注意权限

Linux下安装Dropbox

下载二进制包

wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64"
mkdir -p /opt/dropbox
tar zxfv dropbox-lnx.x86_64-30.4.22.tar.gz --strip 1 -C /opt/dropbox/

链接Dropbox客户端

运行/opt/dropbox/dropboxd脚本,会在前台启动Dropbox客户端,输出如下

[root@hexo dropbox]# ./dropboxd
此电脑尚未与任何 Dropbox 帐户关联...
请访问 https://www.dropbox.com/cli_link_nonce?nonce=3ff1xxxxxxxxxxxx3c604895 来关联此设备。

这时用浏览器访问这个https地址,即可关联账户,按下Ctrl-C ,以退出运行Dropbox,你会发现在加目录多出一个Dropbox目录,就是用户存放同步文件的目录。

[root@hexo Dropbox]# pwd
/root/Dropbox

设置服务脚本

我们需要创建一个init脚本和一个Systemd单元文件。 为了方便,直接下载

curl -o /etc/init.d/dropbox https://gist.githubusercontent.com/thisismitch/6293d3f7f5fa37ca6eab/raw/2b326bf77368cbe5d01af21c623cd4dd75528c3d/dropbox
curl -o /etc/systemd/system/dropbox.service https://gist.githubusercontent.com/thisismitch/6293d3f7f5fa37ca6eab/raw/99947e2ef986492fecbe1b7bfbaa303fefc42a62/dropbox.service

添加执行权限 chmod +x /etc/systemd/system/dropbox.service /etc/init.d/dropbox 创建Dropbox的系统的用户列表 echo 'DROPBOX_USERS="root"' > /etc/sysconfig/dropbox 重新加载Systemd守护程序 systemctl daemon-reload 启动Dropbox服务并设置开机启动

systemctl start dropbox
systemctl enable dropbox

使用Dropbox

Windows和Mac下,安装Dropbox比较简单,但一样要科学上网,这里不做介绍。启动应用,将需要同步的文件放到指定目录就可以上传到云端了。 Linux下同步文件夹,除了mv文件,还可以直接设置软连接实现同步。例如,我需要同步blog的源代码。而我的blog在/lanpang/下,就只需要在/root/Dropbox下设置一个软链接,就可以保存到云端了。

cd /root/Dropbox
ln -s /lanpang/blog blog

参考链接:https://www.howtoing.com/how-to-install-dropbox-client-as-a-service-on-centos-7/