rsync 远程同步文件
2016-03-24 17:02
302 查看
rsync有两种工作方式,这里用的是“方式”这个词,而不是“模式”。注意区分。
其中,同步用的账号和密码都是rsync专用的,在rsync配置文件中独立配置。于系统账号无关。
服务端运行rsync进程在daemon模式下,客户端是普通的rsync进程。
这种模式下,客户端只能同步服务端事先配置的模块(目录)。不能访问其他路径。
服务端配置方法参考:
rsync配置详细版
用rsync对网站进行镜像备份
本机rsync进程直接通过ssh通道连接到远程,并在远程ssh通道执行命令:rsync–******
本地rsync进程和远程rsync进程通过自己的标准输入和标准输出互相通信。具体的说就是,本地进程监听ssh通道的远程回显当做输入,把自己的的输出通过ssh通道发送给远程。而远程的rsync进程就一样,也会监听ssh通道的输入,当做自己的输入,然后把自己的输出写入到ssh通道。
于是,远程rsync进程和本地rsync进程就通过这种方式同步文件。
这种情况,无需事先配置远程服务端,只要你有ssh权限登录,就能同步。
同步的路径无限制。当然只能访问你的ssh账号所能访问的目录。如果你是root那就是无限制了。
这两种工作方式下,只是传输的通道不一样,第一种是直接走socket通道。第二种是走的ssh通道。
安全性显而易见。
两种方式下,rsync都使用自有协议进行同步,所以可以携带的参数都是没有区别的。
当通过ssh链接时,有时需要指定ssh端口,请使用这个方式:
(注意,是否使用ssh通道,与上面这个参数没有必然联系。我这里指定了10000端口)
我们以从远程向本地拷贝为例,
这个时候,SRC应该是远程地址.
其形式应该是:
如果远程是daemon模式:
MODE是远程daemon事先配置好的模块名字。这里只能使用已经配好的模块名字,不能使用路径。
注意HOST于MODE之间有两个冒号。这是rsync用于区分模式的唯一方法。
例子,拷贝远程模块到本地:
把远程的WEB模块,拷贝到本地的tmp目录。
或者是:
直接使用ssh模式:
这里,后面跟的直接是Folder的完整路径。当然是USER所能访问的地方。
注意这里HOST和Folder之间用的是一个冒号,rsync由此判断使用ssh通道。而不是直接连接远端的873端口。
例子:
这里是使用root用户登录远程服务器,并把远程的/home/wwwroot/目录同步到本地的tmp目录。注意与前一种的区别,只有一个冒号。这里会提示输入远程root的密码,如果已经配置了public
keyssh登录远程机器,就无需输入密码了。
这是一个通过ssh通道从本地推送到远程的例子。把本地的/home/wwwroot推送到远程的/home下面。
参数说明,
-z表示传输过程压缩
-a表示采用归档模式,拷贝文件时,保留文件的属主,用户组,权限等等信息。
-c表示校验文件checksum
-u表示update,只传送更新的文件。rsync会比较文件的修改时间。只有较新的文件才会被同步。
参考:
rsync
HowRsyncWorks
Rsync命令参数详解–技术文档–系统管理Linux时代–开源、自由、共享–中国最大的Linux技术社区
byNeil
byNeil.com
FromBlogbyNeil,
post
rsync远程同步文件
原文来自BlogbyNeil,
post
rsync远程同步文件转载请注明出处。本站保留一切权力
第一种方式是服务器–客户端方式。
在这种方式下,服务端启动daemon守护进程,监听在端口873,并配置需要同步的模块。然后客户端直接链接到873端口,通过认证,并同步。其中,同步用的账号和密码都是rsync专用的,在rsync配置文件中独立配置。于系统账号无关。
服务端运行rsync进程在daemon模式下,客户端是普通的rsync进程。
这种模式下,客户端只能同步服务端事先配置的模块(目录)。不能访问其他路径。
服务端配置方法参考:
第二种方式,通过ssh链接。
这种方式下,无需事先配置远程服务端。本机rsync进程直接通过ssh通道连接到远程,并在远程ssh通道执行命令:rsync–******
本地rsync进程和远程rsync进程通过自己的标准输入和标准输出互相通信。具体的说就是,本地进程监听ssh通道的远程回显当做输入,把自己的的输出通过ssh通道发送给远程。而远程的rsync进程就一样,也会监听ssh通道的输入,当做自己的输入,然后把自己的输出写入到ssh通道。
于是,远程rsync进程和本地rsync进程就通过这种方式同步文件。
这种情况,无需事先配置远程服务端,只要你有ssh权限登录,就能同步。
同步的路径无限制。当然只能访问你的ssh账号所能访问的目录。如果你是root那就是无限制了。
这两种工作方式下,只是传输的通道不一样,第一种是直接走socket通道。第二种是走的ssh通道。
安全性显而易见。
两种方式下,rsync都使用自有协议进行同步,所以可以携带的参数都是没有区别的。
具体实例:
rsync的一般形式:2:rsync-optionsSRCDEST
当通过ssh链接时,有时需要指定ssh端口,请使用这个方式:
1:rsync-options-e"ssh-p10000"SRCDEST
(注意,是否使用ssh通道,与上面这个参数没有必然联系。我这里指定了10000端口)
我们以从远程向本地拷贝为例,
这个时候,SRC应该是远程地址.
其形式应该是:
如果远程是daemon模式:
1:USER@HOST::MODE
MODE是远程daemon事先配置好的模块名字。这里只能使用已经配好的模块名字,不能使用路径。
注意HOST于MODE之间有两个冒号。这是rsync用于区分模式的唯一方法。
例子,拷贝远程模块到本地:
1:rsync-vzrtopg--progress--deleteuser1@192.168.168.52::WEB/tmp/
把远程的WEB模块,拷贝到本地的tmp目录。
或者是:
直接使用ssh模式:
1:USER@HOST:Folder
这里,后面跟的直接是Folder的完整路径。当然是USER所能访问的地方。
注意这里HOST和Folder之间用的是一个冒号,rsync由此判断使用ssh通道。而不是直接连接远端的873端口。
例子:
1:rsync-vzrtopg--progress--deleteroot@192.168.168.52:/home/wwwroot//tmp/
这里是使用root用户登录远程服务器,并把远程的/home/wwwroot/目录同步到本地的tmp目录。注意与前一种的区别,只有一个冒号。这里会提示输入远程root的密码,如果已经配置了public
keyssh登录远程机器,就无需输入密码了。
常用rsync命令参数:
1:rsync-vzacu/home/wwwrootroot@198.***.***.***:/home/--exclude"wwwroot/index"-e"ssh-p22"
这是一个通过ssh通道从本地推送到远程的例子。把本地的/home/wwwroot推送到远程的/home下面。
参数说明,
-z表示传输过程压缩
-a表示采用归档模式,拷贝文件时,保留文件的属主,用户组,权限等等信息。
-c表示校验文件checksum
-u表示update,只传送更新的文件。rsync会比较文件的修改时间。只有较新的文件才会被同步。
参考:
From
post
rsync远程同步文件
原文来自
post
rsync远程同步文件转载请注明出处。本站保留一切权力
相关文章推荐
- erlang笔记-lists
- 基本标签(三)
- “模仿"还是”创新“
- 基于C#实现网页爬虫
- 从Linux程序中执行shell(程序、脚本)并获得输出结果
- 理解泛型通配符(List<? extends T > & List< ? super T>)
- 开发API文档相关问题(*.chm)
- 安卓开发——AsyncTask内的各个方法调用顺序
- One-Hot Encoding独热编码
- 三个数排序
- JS--遍历DOM树
- TopCoder SRMS 1 字符串处理问题 Java题解
- MySQL监控SQL及命中率脚本
- hdu 3954(线段树区间更新)
- Android分享笔记(6) Android 自定义UI模板
- KMP(性质)
- [LeetCode][数据结构]Implement Queue using Stacks
- Windows系统如何关闭一个程序
- layer 弹出iframe层 去掉滚动条
- 计算机网络中的TCP/UDP协议到底是怎么回事(一)