hexo_deploy服务器端命令路径问题
前言
使用 hexo d
来同步本地文件到远程,在使用时遇到一些问题.
- 远程主机找不到
rsync
命令安装路径 - 压缩方法太旧
原因分析
- 使用
ssh username@domain 'command'
在远程运行命令时,
shell处于与平常不同的状态,一般不加载PATH
设置,能加载的(bash
)也嫌设置麻烦. - 改参数指定新的压缩方式就行
解决
- 使用
--rsync-path
通知rsync命令在远程服务器的位置 - 使用
-zz
而不使用-z
比如在本地使用命令
1 | rsync --rsync-path=/usr/bin/rsync -avzz -e 'ssh -p 22' public [email protected]:/mnt/sda/www/myblog |
就能够成功上传.
而 hexo d
对 rsync
命令进行了包装,配置该命令需要在
/hexo/node_modules/hexo-deployer-rsync/lib/deployer.js
中设置 params
比变量的值,添加了第一个参数
修改了第二个参数
1 | var params = [ |