hexo使用rsync部署到服务器

priority
Updated
Jun 18, 2021 06:07 AM
date
Jan 12, 2018
type
Post
URL
slug
hexo-rsync-deploy
Created
Jun 18, 2021 06:00 AM
status
Published
tags
summary
Hexo提供了多种部署(deploy)的方式,对于放在自有的VPS主机的用户来说,通过github进行同步未免太过麻烦,hexo支持使用rsync部署到远程机器。rsync是一个增量备份工具,压缩数据传输,速度快且增量备份,占用流量少。网上很多教程对rsync了解甚少,所以步骤未免繁琐,本文简单讲述了针对hexo rsync deploy的部署方式。

安装rsync

参考rsync在Windows中的安装使用的安装部分,安装软件。并将本地的ssh公钥添加到远程主机
hexo使用rsync的原理是,提供一个能使用ssh密钥登陆主机的账户,rsync使用该账户与密钥通过ssh登陆主机并传输文件。hexo的rsync deploy plugin主要是负责在后台执行命令:
rsync -avz /public/ username@host:remotepath
因此,hexo d的部署命令一定要在博客的根目录执行。

配置hexo

在hexo配置文件_config.yml中添加
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的时候有效,当出错时,程序会继续运行删除文件。

部署

在博客根目录下运行
hexo g
hexo d
注意:必须先进行生成,在部署,本质上是传输public文件夹的内容,若public的内容未更新或者不存在,则远程会不更新或者报错。
如果部署"Permission Denied"权限错误,对报错的文件夹或者文件运行chmod -R 777 dir即可。
💡
使用WSL的情况下,需要在WSL内执行;使用MobaXterm的话,需要在MobaXterm的Terminal中执行。

© Song 2015 - 2021