hexo使用rsync部署到服务器

Hexo提供了多种部署(deploy)的方式,对于放在自有的VPS主机的用户来说,通过github进行同步未免太过麻烦,hexo支持使用rsync部署到远程机器。rsync是一个增量备份工具,压缩数据传输,速度快且增量备份,占用流量少。网上很多教程对rsync了解甚少,所以步骤未免繁琐,本文简单讲述了针对hexo rsync deploy的部署方式。

安装rsync

参考rsync在Windows中的安装使用的安装部分,安装软件,为方便使用,请将安装后的bin目录设置环境变量。

配置服务器

参考rsync在Windows中的安装使用中的“配置-与远程机器通过ssh传输”将公钥添加到主机。

hexo使用rsync的原理是,提供一个能使用ssh密钥登陆主机的账户,rsync使用该账户与密钥通过ssh登陆主机并传输文件。hexo的rsync deploy plugin主要是负责在后台执行命令:

1
rsync -avz /public/ username@host:remotepath

因此,hexo d的部署命令一定要在博客的根目录执行。

配置hexo

在hexo配置文件_config.yml中添加

1
2
3
4
5
6
7
8
9
10
deploy:
type: rsync
host: <host> //主机ip
user: <user> //之前设置ssh的用户名
root: <root> //远程主机文件存储位置
port: [port] //ssh登陆端口,一般填写22
delete: [true|false] //是否删除远端存在而本地不存在的文件
args: //提供的其它rsync参数信息
verbose: [true|false] //输出详细信息,推荐true
ignore_errors: [true|false] //即使出现IO错误也进行删除,推荐false

ingore_errors在delete为true的时候有效,当出错时,程序会继续运行删除文件。

部署

在博客根目录下运行

1
2
hexo g
hexo d

注意:必须先进行生成,在部署,本质上是传输public文件夹的内容,若public的内容未更新或者不存在,则远程会不更新或者报错。

如果部署”Permission Denied”权限错误,对报错的文件夹或者文件运行chmod -R 777 dir即可。

多次使用

如果在新的电脑上安装cwRsync,但是不想麻烦的生成公钥并添加,可以省略配置服务器这步。运行ssh-keygen -t rsa生成密钥,之后将之前的私钥替换新生成的即可(必须先生成后替换,否则报错)。

Song wechat
扫一扫,关注微信公众号,订阅我的博客
扫码领红包,支持走一波