自动备份Linux上的博客数据到坚果云

欢迎访问陈同学博客原文
本文主要内容拷贝于这篇文章 备份Linux系统数据到坚果云,自己做了些拓展,感谢作者。

本文分享两个博客相关小技巧,一是自动备份Linux上博客数据到坚果云和本机,二是搭建一个图片服务器来存储博客用到的图片。

云服务器甩卖时屯了几年低配机,博客数据每天备份在磁盘并定期下载到本地,可这操作是又慢又麻烦。

下面介绍利用坚果云支持 WebDAV 特性完成备份操作。

##准备工作

所需材料

  • 坚果云账户一个,免费版完全够用
  • 服务器一台(下面命令以CentOS 7 为例)
  • 坚果云 PC 客户端

坚果云配置

账户信息 -> 安全选项 -> 第三方应用 添加一个应用,这里创建一个 blog 应用。然后在坚果云创建一个任意名称的文件夹,我创建为 backup

命令行手工备份

先手工操作进行演示,利用 cadaver 工具进行来操作,先安装 cadaver

yum install cadaver

创建 hello.txt ,待会用命令行传递到坚果云。

echo hello >> hello.txt
# 连接坚果云
cadaver https://dav.jianguoyun.com/dav/

根据提示输入 坚果云账户 和刚才创建的 blog应用的密码,进入交互模式。

Authentication required for nutstore on server `dav.jianguoyun.com':
Username: xxx@gmail.com
Password: 
dav:/dav/> 

输入help,可看到所支持的命令。

进入坚果云 backup 目录,将 hello.txt 上传到坚果云。

dav:/dav/> cd backup 
dav:/dav/backup/> put hello.txt 
Uploading hello.txt to `/dav/backup/hello.txt':
Progress: [=============================>] 100.0% of 6 bytes succeeded.

PC上的坚果云客户端立马会把文件同步到本地,几秒钟本机就会收到通知。

脚本自动备份

手工备份自然不行,这里演示自动备份。

首先,在当前用户的 home 目录创建 .netrc 文件,内容如下:

machine dav.jianguoyun.com
login xxx@gmail.com # 坚果云账户
password xxxxxx # blog 应用的密码

此时,再执行 cadaver https://dav.jianguoyun.com/dav/ 命令就不用输入账户密码。

创建一个脚本,随意命名为 davbak ,其中使用cadaver支持的命令即可(可先用命令行测试)。

put word.txt
bye

执行下面命令以执行 davbak 脚本,操作的目录为 backup

[root@centos ~]# cadaver https://dav.jianguoyun.com/dav/backup/ < davbak
dav:/dav/backup/> put word.txt
Uploading word.txt to `/dav/backup/word.txt': succeeded.
dav:/dav/backup/> bye
Connection to `dav.jianguoyun.com' closed.

至此,可以跑个cron任务,每天备份数据到某个目录,然后再定期自动执行脚本将文件上传到坚果云。

服务器同步盘

更进一步,进行实时备份,坚果云PC客户端可以做同步盘,实时将数据备份到坚果云,同理,Linux服务器也可以做到。实现 Linux服务 -> 坚果云 -> 本地PC 三者实时同步,任何操作都会同步到三个地方。

先安装 davfs2。

yum install -y davfs2

/etc/davfs2/davfs2.conf 中的 ignore_dav_header 0 改为 ignore_dav_header 1,否则下面的挂载操作会报:mount.davfs: mounting failed; the server does not support WebDAV.

创建目录 /mnt/dav,然后将坚果云的 /backup 目录挂载到 /mnt/dav。

mount.davfs https://dav.jianguoyun.com/dav/backup  /mnt/dav

输入坚果云账户和应用密码即可,如果不想输入账户密码,可在 /etc/davfs2/secrets 的最后面加一行:

https://dav.jianguoyun.com/dav/backup 坚果云账户 应用密码

此时,服务器、坚果云、本机三者的数据就都同步了。

博客数据只需每晚自动打包并移动到 /mnt/dav 目录,就会自动备份。此时,博客数据在服务器、坚果云都有备份。

如果需要umount,可执行:

umount /mnt/dav

图片服务器

写作时喜欢在本机用Typora,插入图片时不是很方便。利用坚果云的WebDAV服务,图片直接保存在本机同步盘,然后自动上传到坚果云,再自动同步到服务器。还可以随时编辑图片,自动更新。

然后在服务器上使用 nginx 代理一下,就可以在markdown中插入图片的URL了。

server {
    listen 80;
    server_name example.com; 

    location / {
        expires 10d;
    	root /mnt/dav;   
    }
}

最后,安利下坚果云,做同步盘用了几年,非常好用。免费版上传流量1G/月,下载流量3G/月,完全够用。

拓展阅读

WebDAV 与 davfs2

WebDAV是什么?网盘的WebDAV有什么用?
How to mount WebDAV share

WebDAV 全称 Web-based Distributed Authoring and Versioning,是一种基于HTTP的通讯协议,翻译为:基于Web的分布式编写和版本控制协议。通过WebDAV 协议,用户可以用自己的账户操作远程服务器上的资源,这样操作资源和在PC、移动端操作资源是一样的,都是该用户进行操作。

davfs2 全称 WebDAV Linux File System,它可以完全集成在类Unix系统中作为一个工具存在。通过它可以将 WebDAV Server上的资源直接与本机目录挂载到一起,使得操作本机资源就和操作WebDAV服务上的资源一样。

.netrc

The .netrc file

.netrc 是一个位于home目录的文本文件,包含远程用户的登录和初始化信息,可以被自动登录程序使用。

下面是例子,machine 是远程机器名,login 是远程用户名,password 是密码。

machine dav.jianguoyun.com
login xxx@gmail.com
password xxxxxx

欢迎关注陈同学的公众号,一起学习,一起成长

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值