用rsync同步文件夹
用rsync命令在不同机器间同步文件夹,及hexo-deployer-rsync一个BUG的规避方法
命令格式
例如,要把本机public目录与服务器上的/home/blog目录同步,用以下命令:
1 | $ rsync --delete -avz -e ssh public/ root@121.xx.xx.212:/home/blog |
如果服务器的ssh端口不是默认的22,则需要给ssh指定端口号,这种情况不常见:
1 | $ rsync --delete -avz -e 'ssh -p 22' public/ root@121.xx.xx.212:/home/blog |
hexo-deployer-rsync的BUG
如果没有在_config.yml中指定port参数,则无法正确同步,实际上最后执行的命令是:
1 | $ rsync --delete -avz -e public/ root@121.xx.xx.212:/home/blog |
可以发现,指定了-e,但是却少了ssh。出错的代码如下:
1 | var params = [ |
截止到本文,已经有若干人都针对此issue提了pr,但是作者还没有merge。
default port issue
所以目前避免此BUG的方法,是在_config.yml中设置port为22