rsync有两种常用的认证方式,一种为rsync-daemon方式,另外一种则是ssh。
在一些场合,使用rsync-daemon方式会比较缺乏灵活性,ssh方式则成为首选。但是今天实际操作的时候发现当远端服务器的ssh默认端口被修改后,rsync时找不到一个合适的方法来输入对方ssh服务端口号。
在查看官方文档后,找到一种方法,即使用-e参数。
-e参数的作用是可以使用户自由选择shell程序来连接远端服务器,当然也可以设置成使用默认的ssh来连接,但是这样我们就可以加入ssh的参数了。
具体语句写法如下:
rsync -azv -e 'ssh -p 2222' USER@HOST:/SRC [DEST]
从远处主机拉数据到本地
rsync -avzP --delete root@{remoteHost}:{remoteDir} {localDir}
参数说明:
- -a 参数,相当于-rlptgoD(-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件);
- -z 传输时压缩;
- -P 传输进度;
- -v 传输时的进度等信息;
把本地数据推送给远处服务器
rsync -avzP --delete {localDir} root@{remoteHost}:{remoteDir}
常见问题及其解决办法
问题:出现“rsync: mkstemp failed: Operation not permitted”提示,
产生的原因:rsync会创建临时文件,进程必须拥有父目录的写权限,
解决办法:使用–inplace参数
原创文章,转载请注明:转载自Web开发笔记 | rsync使用非默认ssh端口登录的方法
本文链接地址:https://www.magentonotes.com/rsync-with-ssh-without-default-port.html
Comments on this entry are closed.