实验环境

(1) Rsync服务器:10.0.10.158

(2) Rsync客户端:10.0.10.173


Rsync服务器端的配置

1. 安装xinetd和rsync

  1. # yum install xinetd
  2. # yum install rsync

2. 创建配置目录和文件

  1. # mkdir /etc/rsync

该目录下包含3个文件:

  • rsyncd.conf           # rsync主配置文件
  • rsyncd.secrets      # 密码文件
  • rsyncd.motd         # 服务信息定义文件

下面逐一编辑这些文件:

2.1 编辑主配置文件

  1. # vim /etc/rsync/rsyncd.conf
  2. pid file = /var/run/rsyncd.pid #pid文件的存放位置
  3. port = 873                    #通信的端口
  4. address = 10.0.10.158           #监听的地址/服务器的地址
  5. uid = root                       #运行rsync守护进程的用户
  6. gid = root                       #运行rsync守护进程的用户组
  7. use chroot = yes                 #是否使用chroot
  8. read only = no                   #是否只读
  9. hosts allow=10.0.0.0/255.255.0.0 #设置允许访问的主机(可以是一个范围也可以是一个IP地址)
  10. hosts deny= *                    #设置拒绝访问的主机(这里的*表示除了allow以外的都拒绝)
  11. max connections = 51             #最大连接数
  12. motd file = /etc/rsync/rsyncd.motd #指定信息显示文件
  13. log file = /var/log/rsync.log     #指定日志文件
  14. log format = %t %a %m %f %b %l     #设置日志文件格式
  15. syslog facility = local3          #设置日志级别
  16. timeout = 600                     #设置连接超时时间(单位:s)
  17.  
  18. [webroot]            #目录的标识/认证模块名
  19. path = /var/www/html   #要同步的目录名
  20. list=yes              #是否允许列出文件
  21. ignore errors          #忽略一般的IO错误
  22. auth users = admin   #认证的用户名
  23. secrets file = /etc/rsync/rsyncd.secrets #密码文件
  24. comment = web root directory            #说明信息
  25. exclude = secret/ #需要排除的目录(排除后就不同步它了)

2.2 编辑密码配置文件

  1. # vim /etc/rsync/rsyncd.secrets
  2. admin:123123 #格式是“用户名:密码”

2.3 编辑服务信息定义文件

  1. # vim /etc/rsync/rsyncd.motd
  2. welcome access

3. 修改密码配置文件的权限

  1. # chmod rsyncd.secrets

4. 启动Rsync服务

  1. # /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
  2. # vim /etc/xinetd.d/rsync
  3. service rsync
  4. {
  5. disable = no
  6. flags = IPv6
  7. socket_type = stream
  8. wait = no
  9. user = root
  10. server = /usr/bin/rsync
  11. server_args = --daemon --config=/etc/rsync/rsyncd.conf
  12. log_on_failure += USERID
  13. }
  14. # service xinetd restart

Rsync客户端配置

1. 创建目录、编辑密码文件

  1. # mkdir /etc/rsync
  2. # vim /etc/rsync/password
  3. 123123 #格式是“密码”
  4. # chmod 600 /etc/rsync/password #修改密码文件的权限

Rsync同步命令的参数

-v  表示verbose详细显示

-z  表示压缩(reduces the amount of data being transmitted)

-r   表示recursive递归

-t   表示保持原文件创建时间

-o  表示保持原文件属主

-p  表示保持原文件的参数

-g  表示保持原文件的所属组

-a  归档模式

-P  表示代替-partial和-progress两者的选项功能

-e    ssh建立起加密的连接

--partial    阻止rsync在传输中断时删除已拷贝的部分(如果在拷贝文件的过程中,传输被中断,rsync的默认操作是撤消前操作,即从目标机上删除已拷贝的部分文件)

--progress  是指显示出详细的进度情况

--delete  是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致

--exclude  不包含指定目录

--size-only  这个参数用在两个文件夹中的差别仅是源文件夹中有一些新文件,不存在重名且被修改过的文件,因为这种文件有可能会因为内容被修改可大小一样,而被略过。这个参数可以大大地提高同步的效率,因为它不需要检查同名文件的内容是否相同

--password-file  来指定密码文件,内容包含server端指定认证用户的密码


验证

1. 同步服务器的文件到本地

  1. # ll /var/www/html/   #看服务器上的/var/www/html目录下有啥
  2. 总用量 8
  3. -rw-r--r--. 1 root root 0 12 1 01:05 index.html
  4. -rw-r--r--. 1 root root 0 12 1 01:05 page.html
  1. # rsync -vzrtopg --progress --delete admin@10.0.10.158::webroot /var/www/html/ --password-file=/etc/rsync/password   #在客户机,执行同步操作,使得获得服务器的文件
  2. welcome access
  3.  
  4. receiving incremental file list
  5. ./
  6. index.html
  7. 0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=1/3)
  8. page.html
  9. 0 100% 0.00kB/s 0:00:00 (xfer#2, to-check=0/3)
  10.  
  11. sent 105 bytes received 227 bytes 664.00 bytes/sec
  12. total size is 0 speedup is 0.00
  1. # ll /var/www/html/            #在服务器端我们试着添加一下新的目录和文件(包括设置了不同步的目录secret)
  2. 总用量 8
  3. drwxr-xr-x. 2 root root 4096 12 1 01:41 haha
  4. -rw-r--r--. 1 root root 0 12 1 01:05 index.html
  5. -rw-r--r--. 1 root root 0 12 1 01:40 page_2.html
  6. -rw-r--r--. 1 root root 0 12 1 01:05 page.html
  7. drwxr-xr-x. 2 root root 4096 12 1 01:40 secret
  1. # rsync -vzrtopg --progress --delete admin@10.0.10.158::webroot /var/www/html/ --password-file=/etc/rsync/password  #在客户端执行同步命令,以获得服务器的更新
  2. welcome access
  3.  
  4. receiving incremental file list
  5. ./
  6. page_2.html
  7. 0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/4)
  8.  
  9. sent 80 bytes received 207 bytes 191.33 bytes/sec
  10. total size is 0 speedup is 0.00
  11.  
  12. # rsync -vzrtopg --progress --delete admin@10.0.10.158::webroot /var/www/html/ --password-file=/etc/rsync/password
  13. welcome access
  14.  
  15. receiving incremental file list
  16. ./
  17. haha/
  18.  
  19. sent 65 bytes received 203 bytes 536.00 bytes/sec
  20. total size is 0 speedup is 0.00
  21.  
  22. # ll /var/www/html/ --------->#确实没有同步secret这个目录
  23. 总用量 4
  24. drwxr-xr-x. 2 root root 4096 12 1 2009 haha
  25. -rw-r--r--. 1 root root 0 12 1 2009 index.html
  26. -rw-r--r--. 1 root root 0 12 1 2009 page_2.html
  27. -rw-r--r--. 1 root root 0 12 1 2009 page.html

2. 同步本地的文件到服务器

  1. # touch new.html    #在本地新增一个文件
  2. # rsync -vzrtopg --progress --partial --password-file=/etc/rsync/password /var/www/html/ admin@10.0.10.158::webroot #在本地执行同步命令,使本地的更新同步到服务器
  3. welcome access
  4.  
  5. sending incremental file list
  6. ./
  7. new.html
  8. 0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=3/6)
  9.  
  10. sent 165 bytes received 31 bytes 392.00 bytes/sec
  11. total size is 0 speedup is 0.00
  1. # ls /var/www/html    #在服务器上看到了这个new.html
  2. haha index.html new.html page_2.html page.html secret

常见错误

问题一:
@ERROR: chroot failed
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:服务器端的目录不存在或无权限。创建目录并修正权限可解决问题。检查服务器那个密码文件的权限是否为600

问题二:
@ERROR: auth failed on module tee
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:服务器端该模块(tee)需要验证用户名密码,但客户端没有提供正确的用户名密码,认证失败。提供正确的用户名密码解决此问题。
 
问题三:
@ERROR: Unknown module ‘tee_nonexists’
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:服务器不存在指定模块。提供正确的模块名或在服务器端修改成你要的模块以解决问题。
 
问题四:
password file must not be other-accessible
continuing without password file
Password:
原因:这是因为rsyncd.pwd rsyncd.secrets的权限不对,应该设置为600。如:chmod 600 rsyncd.pwd
 
问题五:
rsync: failed to connect to 218.107.243.2: No route to host (113)
rsync error: error in socket IO (code 10) at clientserver.c(104) [receiver=2.6.9]
原因:对方没开机、防火墙阻挡、通过的网络上有防火墙阻挡,都有可能。关闭防火墙,其实就是把tcpudp的873端口打开。

问题六:
rsync error: error starting client-server protocol (code 5) at main.c(1524) [Receiver=3.0.7]
原因:/etc/rsyncd.conf配置文件内容有错误。请正确核对配置文件。
 
问题七:
rsync: chown "" failed: Invalid argument (22)
原因:权限无法复制。去掉同步权限的参数即可。(这种情况多见于Linux向Windows的时候)

问题八:
@ERROR: daemon security issue -- contact admin
rsync error: error starting client-server protocol (code 5) at main.c(1530) [sender=3.0.6]
原因:同步的目录里面有软连接文件,需要服务器端的/etc/rsyncd.conf打开use chroot = yes。掠过软连接文件

[rsync]——rsync文件同步和备份的更多相关文章

  1. rsync 文件同步和备份

    rsync 是同步文件的利器,一般用于多个机器之间的文件同步与备份,同时也支持在本地的不同目录之间互相同步文件.在这种场景下,rsync 远比 cp 命令和 ftp 命令更加合适,它只会同步需要更新的 ...

  2. Linux下简单粗暴使用rsync实现文件同步备份【转】

    这篇来说说如何安全的备份,还有一点不同的是上一篇是备份服务器拉取数据,这里要讲的是主服务器如何推送数据实现备份. 一.备份服务器配置rsync文件 vim /etc/rsyncd.conf #工作中指 ...

  3. Linux Rsync实现文件同步备份(转载)

    原文地址:Linux Rsync实现文件同步备份作者:夷北 转自:http://www.mike.org.cn/blog/index.php?load=read&id=639###pp=0 [ ...

  4. rsync+inotify文件同步

    rsync+inotify文件同步 在服务器中,通常结合计划任务.shell脚本来执行本地备份.为了进一步提高备份的可靠性,使用异地备份也是非常重要的,利用rsync工具,可以实现快速.高效的异地备份 ...

  5. rsync+inotfiy文件同步

    rsync+inotfiy文件同步 1.部署rsync服务 yum install rsync #安装rsync,如果嫌yum版本过低也可以源码安装 2.vim /etc/rsyncd.conf #默 ...

  6. rsync+inotify文件同步 - 同步慢的问题

    rsync+inotify文件同步 - 同步慢的问题 我们来看网上的教程,我加了注释.(网上所有的教程基本都一模一样,尽管写法不一样,致命点都是一样的) #!/bin/bash /usr/bin/in ...

  7. CentOS利用inotify+rsync实现文件同步

    1.环境部署 inotify-master 10.10.6.208 inotify-slave 10.10.6.149 2.两台服务器都安装rsync yum install -y rsync 3.i ...

  8. inotify配合rsync实现文件同步

    一.slave端rsync设置在此部署rsync服务和rsync daemon 1.安装rsync   2.配置rsyncd.conf文件#vi /etc/rsyncd.conf配置文件uid = r ...

  9. CentOS安装和配置Rsync进行文件同步

    Liunx系统实现文件同步不需要搭建FTP这类的工具,只需要按照Rsync配置下文件就可以. 本文以Centos7.0为例. 1. 首先关闭SELINUX(不关闭无法同步,权限太高了) vi /etc ...

  10. rsync实现文件同步

    rsync是类unix系统下的数据镜像备份工工具,一般linux系统都自带了 [可以确认一下:shell>rpm -qa|grep rsync] 服务端:192.168.1.2  同步目录:/h ...

随机推荐

  1. dedecms手机站要同步pc站的图片

    首先在dede目录下面找到  /include/extend.func.php  文件 //添加自定义函数 function replaceurl($newurl){ $newurl=str_repl ...

  2. .NET平台下,关于数据持久层框架

    在.NET平台下,关于数据持久层框架非常多,本文主要对如下几种做简要的介绍并推荐一些学习的资源: 1.NHibernate 2.NBear 3.Castle ActiveRecord 4.iBATIS ...

  3. ASP.NET的SEO--- Global.asax和HttpModule中的RewritePath()方法

    本系列目录 因为在网上搜到了很多这方面的文章,而且UrlRewrite中SEO中的重要性也在逐步下降,所以这一节我就写得简单一些.以下是几个重点: 1.UrlRewrite,顾名思义,只是针对URL进 ...

  4. 【C++面试】常考题复习:排序算法

    // Sort.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <stdlib.h> /*********** ...

  5. 4种kill某个用户所有进程的方法

    在linux系统管理中,我们有时候需要kill掉某个用户的所有进程,初学者一般先查询出用户的所有pid,然后一条条kill掉,或者写好一个脚本,实际上方法都有现成的,这边有4种方法,我们以kill用户 ...

  6. 【风马一族_php】NO1_用php发出一声 Hi

    原文来自:http://www.cnblogs.com/sows/p/5990157.html  (博客园的)风马一族 侵犯版本,后果自负 第一步 安装WEB服务器 http://www.cnblog ...

  7. C#中string[ ] args是什么意思,又有什么用呢

    转载:http://blog.sina.com.cn/s/blog_8b7263d1010172jv.html C#控制台程序中static void Main(string[ ] args) str ...

  8. scan的filter使用

    本次操作的hbase的t1表的数据是: hbase(main)::> scan 't1' ROW COLUMN+CELL column=f1:age, timestamp=, value= co ...

  9. Java编程性能优化

    1尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 第一,控制资源的使用,通过线程同步来控制资 ...

  10. KMP串匹配算法解析与优化

    朴素串匹配算法说明 串匹配算法最常用的情形是从一篇文档中查找指定文本.需要查找的文本叫做模式串,需要从中查找模式串的串暂且叫做查找串吧. 为了更好理解KMP算法,我们先这样看待一下朴素匹配算法吧.朴素 ...