rsync入门

转载 2015年11月19日 17:27:48

rsync是Linux/unix下一个用于远程文件(目录)同步的一个精巧的小工具程序,有很多文章讨论了其功能和实现原理,本文主要就不赘述了。

主要介绍下实践时使用的一些方法和细枝末节留作工作笔记以便日后参考。

大部分的Linux发布包中基本都默认包含了rsync这个小工具,这里就不介绍其安装了。

使用场景

用rsync同步程序部署包到单个或多个测试机上。

模式

rsync支持6种工作模式,总体划分为pull和push两种。具体参看官方文档 rsync man page,本文的场景适合于push模式。

过程

下面以 rsync daemon方式的push模式做说明,其命令模式如下

 Push: rsync [OPTION...] SRC... [USER@]HOST::DEST

 本地机作为client端,远程服务器作为server端,文件从本地push到远程服务器指定目录下。首先需在远程服务器用daemon模式启动rsync,启动前需对rsync的配置文件进行配置。

配置文件默认为 /etc/rsyncd.conf,若之前没有使用过,/etc目录下默认没有该文件,需新建该文件,如下所示:

配置文件是由一个或多个模块结构组成。一个模块定义以方括弧中的模块名开始,直到下一个模块定义开始或者文件结束,模块中包含格式为name = value的参数定义

[plain] view plaincopy
  1. # 全局参数定义  
  2. uid = root  
  3. gid = root  
  4. use chroot = no  
  5. max connections = 1              #指定该模块的最大并发连接数量以保护服务器,超过限制的连接请求将被告知随后再试。默认值是0,也就是没有限制。  
  6. pid file = /tmp/rsyncd.pid   
  7. lock file = /tmp/rsyncd.lock  
  8. log file = /tmp/rsyncd.log  
  9. # tmp 模块  
  10. [tmp]  
  11. path = /tmp/rsync  
  12. read only =  no                  #不能只读,因为要向服务器传输文件,必须可写  
  13. list = yes  
  14. hosts allow = 192.168.1.5        #只允许这个ip访问  
  15. hosts deny = 0.0.0.0/32  
  16. auth users = root                #授权用户  
  17. secrets file = /etc/rsyncd.pas   #授权密码  格式:root:123456  可如此生成该文件:echo "root:123456" > /etc/rsyncd.pas; chmod 600 /etc/rsyncd.pas(只有所有者可以读写)  
  18. # vdisk 模块  
  19. [vdisk]  
  20. path = /backup/vdisk  
  21. read only =  no  
  22. list = yes  
  23. hosts allow = 192.168.1.5  
  24. hosts deny = 0.0.0.0/32  
  25. auth users = root  
  26. secrets file = /etc/rsyncd.pas  


配置完成后,按如下命令启动rsync daemon服务

[plain] view plaincopy
  1. rsync --daemon 或 rsync --daemon --config=/etc/rsyncd.conf  

若要停止服务,执行如下命令

[plain] view plaincopy
  1. cat /tmp/rsyncd.pid | xargs kill -9 && rm -rf /tmp/rsyncd.pid  

完成了服务端配置,并启动服务后在client端执行如下命令进行文件同步:

[plain] view plaincopy
  1. rsync -varz --delete --exclude ".*" --progress --password-file=/etc/rsyncd.pas /tmp root@192.168.1.5::tmp  

以上命令是将本地/tmp目录同步到远程服务器的tmp模块指定的目录,也就是服务端配置文件中path的位置,如上path = /tmp/rsync

具体参数选项参考man page,这里需要提一点的是client端的密码文件只需要密码,不需要用户名否则会报如下错误:

[plain] view plaincopy
  1. @ERROR: auth failed on module testlink    
  2. rsync error: error starting client-server protocol (code 5) at main.c(1527) [receiver=3.0.6]    

生成客户端密码文件可用如下脚本命令

[plain] view plaincopy
  1. echo "123456" > /etc/rsyncd.pas; chmod 600 /etc/rsyncd.pas  

相关文章推荐

rsync入门

rsync是Linux/unix下一个用于远程文件(目录)同步的一个精巧的小工具程序,有很多文章讨论了其功能和实现原理,本文主要就不赘述了。 主要介绍下实践时使用的一些方法和细枝末节留作工作笔记以便...

rsync同步工具

  • 2016-07-18 16:20
  • 774KB
  • 下载

rsync服务

rsync服务rsync服务 rsync安装 syntax rsync用法 本地shell模式 远程shell模式 参数 模块选项如下GM表示也可以用于全局 配置示例 启动服务和停止服务 客户端配置 ...

rsync-3.1.1pre1.tar

  • 2014-05-29 14:38
  • 865KB
  • 下载

rsync 服务器搭建

以下是rsync简单的搭建,配置的系统环境是redhat5系统中 rsync 服务器架设比较简单,可能我们安装好 rsync 后,并没有发现配置文件,以及 rsync 服务器启动程序,因为每个管理员...

rsync跨系统配置

rsync命令详细解答

rsync同步艺术

== 如果你是一位运维工程师,你很可能会面对几十台、几百台甚至上千台服务器,除了批量操作外,环境同步、数据同步也是必不可少的技能。 说到“同步”,不得不提的利器就是rsync,今天就来说说我从这个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)