Linux下resync同步文件
- 01、实际工作中,我们有大量的数据要进行同步及备份,手动拷贝灰常慢,那么在Linx下我们可以
- 使用sersync进行同步,非常快也非常可靠,下面我们来做一个简单的测试:
- 02、实验环境
- 1)服务器端:CentOS 5.5_X64 IP:192.168.10.36
- 2)客户端: CentOS 5.5_X64 IP:192.168.10.38
- 03、准备工作
- 下载 sersync2.5.4_64bit_binary_stable_final.tar.gz包
- 下载地址:http://code.google.com/p/sersync/downloads/list
- 04、服务器端配置:
- [root@test ~]# tar zxvf /opt/sersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/bin/
- [root@test ~]# cd /usr/bin/GNU-Linux-x86/
[root@test GNU-Linux-x86]# ll
total 1776
-rwxr-xr-x 1 root root 2217 Aug 17 18:31 confxml.xml
-rwxr-xr-x 1 root root 1810128 Oct 26 2011 sersync2- [root@test GNU-Linux-x86]# vi confxml.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
<host hostip="localhost" port="8008"></host>
<debug start="false"/>
<fileSystem xfs="false"/>
<filter start="false">
<exclude expression="(.*)\.svn"></exclude>
<exclude expression="(.*)\.gz"></exclude>
<exclude expression="^info/*"></exclude>
<exclude expression="^static/*"></exclude>
</filter>
<inotify>
<delete start="true"/>
<createFolder start="true"/>
<createFile start="false"/>
<closeWrite start="true"/>
<moveFrom start="true"/>
<moveTo start="true"/>
<attrib start="false"/>
<modify start="false"/>
</inotify>- ##################以上部分保持默认即可####下面红色即为修改配置地方####################
- <sersync>
<localpath watch="/opt/tongbu">
<remote ip="192.168.10.38" name="tongbu"/>
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>
<rsync>
<commonParams params="-artuz"/>
<auth start="false" users="root" passwordfile="/etc/rsync.pas"/>
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
</rsync>
<failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
<crontab start="false" schedule="600"><!--600mins-->
<crontabfilter start="false">
<exclude expression="*.php"></exclude>
<exclude expression="info/*"></exclude>
</crontabfilter>
</crontab>
<plugin start="false" name="command"/>
</sersync>- <plugin name="command">
<param prefix="/bin/sh" suffix="" ignoreError="true"/> <!--prefix /opt/tongbu/mmm.sh suffix-->
<filter start="false">- 退出保存
- 配置好yum,安装rsync以便让sersync进行调用
- [root@test GNU-Linux-x86]# yum install rsync
- 05、客户端配置
- 1)安装rsync软件包
- [root@mail ~]# yum install rsync
- 创建配置文件
- [root@mail ~]# vi /etc/rsyncd.conf
- uid=root //设置运行权限为root
gid=root
max connections=100
use chroot=no
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[tongbu]
path=/opt/tongbu
comment = tongbu//与上面[tongbu]模块名称相同
ignore errors = yes
read only = no //设置客户端可以上传文件,yes为只读,不能上传- write only = no //设置客户端可以下载文件,yes为不能下载
hosts allow = 192.168.10.36 192.168.10.38//表示只允许这两台主机可以进行同步- hosts deny = * //拒绝其他一切机器同步
- 创建同步目录
- [root@mail ~]# mkdir /opt/tongbu
- 启动rsync服务
- [root@mail ~]# rsync --daemon
- [root@mail ~]# lsof -i:873 //检查服务是否启动
- [root@mail ~]# lsof -i:873
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
rsync 4236 root 4u IPv6 14709 TCP *:rsync (LISTEN)
rsync 4236 root 5u IPv4 14710 TCP *:rsync (LISTEN)
[root@mail ~]#- 如果有iptables防火墙,请允许TCP的873端口开放
- 下面来进行同步测试
- 在服务器端的/opt/tongbu/下面建立一个文件
- [root@test GNU-Linux-x86]# mkdir /opt/tongbu/
- [root@test GNU-Linux-x86]# touch /opt/tongbu/file.txt
- [root@test GNU-Linux-x86]# ll /opt/tongbu/
total 0
-rw-r--r-- 1 root root 0 Aug 17 18:45 file.txt- 启动sersync
- [root@test GNU-Linux-x86]# ./sersync2 -r -d
- 查看客户端是不是同步过去了
- [root@mail ~]# ll /opt/tongbu/
total 0
-rw-r--r-- 1 root root 0 Aug 17 2012 file.txt //同步成功
[root@mail ~]#- sersync 选项说明
- -h 查看帮助文件
-r 在同步程序开启前,将整个路径跟远程服务器同步一遍
-d 开启守护进程模式在后台运行
-o 指定配置文件,如果不是默认的confxml.xml的情况下
-n 指定同步守护线程数量,默认为10个,适用于现在的4核服务器。如果需增加或减少使用 '-n 数量'