Linux rsync环境搭建(非ROOT搭建)
环境准备
-
rsync
下载https://rsync.samba.org/ftp/rsync/src/rsync-3.1.3.tar.gz
-
inotify
下载https://github.com/rvoicilas/inotify-tools/archive/3.20.1.tar.gz
-
环境信息
下面是两台服务器的结构,分别为主机名,ip,状态,两台服务器均为centos 6.9
web服务器:29.2.70.75
备份服务器:29.2.70.76
准备安装
主服务端
服务端(即同步给其他机器的那一端),需要安装rsync
和inotify
,web服务器作为server,向备份服务器传文件。
-
安装rsync
1. tar xvzf rsync-3.1.3.tar.gz 2. cd rsync-3.1.3 3. ./configure --prefix=/home/tomcat/opt/rsync 4. make && make install
-
建立密码认证文件
1. cd /home/tomcat/opt/rsync 2. echo "rsync-pwd" > rsync.passwd
其中rsync-pwd可以自己设置密码,rsync.passwd名字也可以自己设置.
修改权限600
chmod 600 rsync.passwd
。
-
-
安装inotify
1. 安装autoconf,automake,libtool等工具,过程略 2. tar xvzf inotify-tools-3.20.1.tar.gz 3. cd inotify-tools-3.20.1 4. ./autogen.sh 5. ./configure --prefix=/home/tomcat/opt/inotify 6. make && make install
-
创建rsync复制脚本
此项功能主要是将server端的目录/home/tomcat/tmp里的内容,如果修改了(无论是添加、修改、删除文件)能够通过inotify监控到,并通过rsync实时的同步给client的/home/tomcat/tmp里,下面是通过shell脚本实现的,脚本如下:
#!/bin/bash host=29.2.70.76 src=/home/tomcat/tmp/ des=web user=tomcat /home/tomcat/opt/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src | while read files do /usr/bin/rsync --port=30001 -vzrtopg --delete --progress --password-file=/home/tomcat/opt/rsync/rsync.passwd $src $user@$host::$des echo "${files} was rsynced" >>/home/tomcat/rsync.log 2>&1 done ##如果不需要保留属性,或者保留属性需要其他权限可以去掉-vzrtopg中的pg选项
把这个脚本命名为rsync.sh,放在自己指定目录,例如我就放在/home/tomcat下面,并修改成764权限,具体操作为:
chmod 764 rsync.sh
,然后运行这个脚本sh /home/tomcat/rsync.sh &
。注意,请记住,只有在备份服务器的rsync安装并启动rsync之后,在启动rsync.sh脚本,否则有时候会满屏出现。否则会类似如下出错:
rsync: failed to connect to 29.2.70.76: Connection refused (111) rsync error: error in socket IO (code 10) at clientserver.c(107) [sender=2.6.8]
我们还可以把这脚本添加到开机启动项(如果有权限的话):
echo "/tmp/rsync.sh" >> /etc/rc.local
备份服务器
-
安装rsync(备份服务器只需要安装rsync)
同上
-
建立用户与密码认证文件
echo "tomcat:rsync-pwd" > /home/tomcat/opt/rsync/rsync.passwd
请记住,在web端建立的密码文件,只有密码,没有用户名;而在备份服务端里建立的密码文件,用户名与密码都有,
chmod 600 rsync.passwd
,给密码文件复制600权限。 -
建立rsync配置文件,保存到/home/tomcat/opt/rsync/bin/目录
use chroot = no max connections = 10 strict modes = yes pid file = /home/tomcat/run/rsyncd.pid lock file = /home/tomcat/run/rsync.lock log file = /home/tomcat/logs/rsyncd.log port = 30001 #需要和主服务保持一致 [web] path = /home/tomcat/tmp/ # 存放文件的目录 comment = web file ignore errors read only = no write only = no hosts allow = 29.2.70.75 hosts deny = * list = false #auth users = webuser secrets file = /home/tomcat/opt/rsync/rsync.passwd
其中web是server服务端里的认证模块名称,需要与主服务器里的一致,以上的配置我的自己服务器里的配置,以供参考。
-
启动rsync
/home/tomcat/opt/rsync/bin/rsync --daemon --config=/home/tomcat/opt/rsync/bin/rsync.conf
正常主服务器有文件改动,我们都是可以同步过来的。
注意事项
- 如果不修改端口,采用默认端口需要用root用户启动,因为默认端口是873。