用rsync同步文件夹

用rsync命令在不同机器间同步文件夹,及hexo-deployer-rsync一个BUG的规避方法

命令格式

例如,要把本机public目录与服务器上的/home/blog目录同步,用以下命令:

$ rsync --delete -avz -e ssh public/ root@121.xx.xx.212:/home/blog

如果服务器的ssh端口不是默认的22,则需要给ssh指定端口号,这种情况不常见:

$ rsync --delete -avz -e 'ssh -p 22' public/ root@121.xx.xx.212:/home/blog

hexo-deployer-rsync的BUG

如果没有在_config.yml中指定port参数,则无法正确同步,实际上最后执行的命令是:

$ rsync --delete -avz -e public/ root@121.xx.xx.212:/home/blog

可以发现,指定了-e,但是却少了ssh。出错的代码如下:

var params = [
    '-az',
    'public/',
    '-e',
    args.user + '@' + args.host + ':' + args.root
];

if (args.port && args.port > 0 && args.port < 65536){
    params.splice(params.length - 1, 0, 'ssh -p ' + args.port);
}

截止到本文,已经有若干人都针对此issue提了pr,但是作者还没有merge。
default port issue

所以目前避免此BUG的方法,是在_config.yml中设置port为22

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值