rsync+inotify实现数据同步——单向传输

实验环境:<从A主机推送数据到B主机[B主机可以有多个]>

A主机:10.1.43.102

B主机:10.1.43.103


配置流程:

—rsyncserver—- <B主机上配置>

1.vim /etc/rsyncd.conf(用户,目录,模块,虚拟用户及密码文件)

vim /etc/rsyncd.conf
uid = root
gid = root
port = 873 #post rsync使用的端口号  也是默认端口号 www.jbxue.com
hosts allow = 10.1.43.103 #allow hosts ip 应许的ip访问,也可以设置为ip段
max connections = 200  
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
    
[backup]
path =/var/www/html  #客服端已rsync服务端同步的文件路径
comment = from 10.1.43.103  #解释
read only = no
write only = no
list = no
    
auth users =rsync  #配置登陆名称
secrets file = /etc/rsync.password  #配置用户名密码文件

2.创建共享目录:/test/rsync

mkdri -pv /test/rsync

3、创建密码文件,文件路径和文件名参照配置文件里"secrets file"选项的值,然后添加密码内容

vim /etc/rsync.password
rsync:123456

4、密码文件的权限600

chmod 600 /etc/rsync.password

5、运行rsync,并且开机启动

rsync –daemon
echo "rsync –daemon" >> /etc/rc.local

6、如果出错,查看日志  

tail /var/log/rsyncd.log

——rsyncclient——<A主机上配置>

1、密码文件

vim /etc/rsync.password
123456   #注意:此处只需要写服务端虚拟帐号的密码即可

2、密码文件的权限600

chmod 600 /etc/rsync.password

3.创建共享目录:/test/rsync

mkdri -pv /test/rsync

4、安装inotify-tools软件包

yum -y install inotify-tools

5、编写同步脚本

vim /root/bin/rsync.sh
#!/bin/bash
src=/test/rsync   
des=backup       
host="10.1.43.102"  
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y%H:%M' --format '%T%w%f' -e modify,delete,create,attrib \  #此行尚未完结
$src | while read files; do
  for hostip in $host; do
    rsync -avz --delete --progress --password-file=/etc/rsync.password $src rsync@$hostip::$des
  done
  echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
done

6、后台自动运行,并且开机自动启动

nohup /bin/bash /root/bin/rsync.sh &
echo "nohup /bin/bash /root/bin/rsync.sh &" >> /etc/rc.loacl

如果再配置过程中出现如下问题

问题一:

@ERROR: chroot failed

rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

原因:

服务器端的目录不存在或无权限,创建目录并修正权限可解决问题

问题二:

@ERROR: auth failed on module backup

rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

原因:

服务器端该模块(backup)需要验证用户名密码,但客户端没有提供正确的用户名密码,认证失败

提供正确的用户名密码解决此问题

问题三:

@ERROR: Unknown module ‘backup'

rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

原因:

服务器不存在指定模块。提供正确的模块名或在服务器端修改成你要的模块以解决问题

问题四:

password file must not beother-accessible

continuing without password file

Password:

原因:

这是因为rsyncd.pwdrsyncd.secrets的权限不对,应该设置为600。如:chmod600 rsyncd.pwd

问题五:

rsync: failed to connect to218.107.243.2: No route to host (113)

rsync error: error in socket IO(code 10) at clientserver.c(104) [receiver=2.6.9]

原因:

对方没开机、防火墙阻挡、通过的网络上有防火墙阻挡,都有可能。关闭防火墙,其实就是把tcp udp的873端口打开

问题六:

rsync error: error startingclient-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。掠过软连接文件

原创文章,作者:megedugao,如若转载,请注明出处:http://www.178linux.com/54883

(0)
megedugaomegedugao
上一篇 2016-10-27
下一篇 2016-10-27

相关推荐

  • DNS配置案例 二

    DNS配置案例 二 DNS配置案例 二 1 §·DNS的配置与案例 1 §·测试工具 3 §·主配置文件格式:/etc/named.conf 7 §·缓存名称服务器的配置: 8 §·配置解析一个正向区域 : 以loveme.com域为例: 10 §·配置解析一个反向区域 : 以loveme.com域为例: 15 §·配置从DNS服务器 19 §·问…

    Linux干货 2016-09-26
  • 8.1-用户和组(作业篇)

     1、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中。 [root@localhost ~]# tr a-z A-Z </etc/issue > /tmp/issue.out [root@localhost ~]#&n…

    Linux干货 2016-08-04
  • Nginx+resin调优文档[原创]

    为什么不选择Apache/mod+resin?       前面一直使用该模式,mod_caucho暴露源码的bug一直未得到彻底的解决。因此切换到Nginx+resin平台。硬件上要求除了内存一定要足够大(建议>4G),无其它要求(当然也不能太破,呵呵)。操作系统强烈要求安装64位,32位操…

    Linux干货 2015-03-27
  • 第二周作业

    由于图片粘贴复杂,请看链接。 http://note.youdao.com/noteshare?id=a78c3236bbf77232fcc3e2624a38ae12

    Linux干货 2016-09-19
  • mysql数据库及表的管理

    MySQL中字符大小写: 1、SQL关键字及函数名不区分字符大小写; 2、数据库、表及视图名称的大小区分与否取决于低层OS及FS 3、存储过程、存储函数及事件调度器的名字不区分大小写,但触发器区分; 4、表别名区分大不写; 5、对字段中的数据,如果字段类型为Binary类型,则区分大小写;非Binary不区分大小写; 数据库: CREATE {DATABAS…

    Linux干货 2015-06-01
  • 开学第一天

      今天是我来到马哥教育的第一天,来之前心情非常之忐忑,因为没有接触过linux系统,感觉是个新事物,来到教室里,一百多人的大集体,年龄的差异,使我感觉到压力。首先马哥和张sir的讲话,非常的帮,其中令我记忆最深刻的是那句话,取上者得中,取中者得下。一个人在奋斗的时候如果给自己的目标定的低,那就收获的还要低。所以要高标准的要求自己,一开始给自己定一…

    Linux干货 2018-03-26