所需软件:lsyncd与rsync
lsyncd( Live Syncing (Mirror) Daemon),工作原理:监视本地(rsync client)的目录,当源数据有文件或目录更新时,更新本地文件或目录到远端机器(rsync server),保持实时文件同步,但是它更新数据时需要远端rsync server运行rsync demon。
配置环境
(1)需要配置rsyncd.conf文件的一端,称为rsync server
(2)不需要配置rsyncd.conf文件的一端,称为rsync client
一、客户端上的配置:
1、安装rsync
复制代码 代码示例:
#wget wget http://www.samba.org/ftp/rsync/src/rsync-3.0.6.tar.gz
#tar zvxf rsync-3.0.6.tar.gz
#cd rsync-3.0.6
#./configure --prefix=/usr/local/rsync
#make && make install
2、安装lsyncd
复制代码 代码示例:
#wget http://lsyncd.googlecode.com/files/lsyncd-2.0.7.tar.gz
#tar zxvf lsyncd-2.0.7.tar.gz
#cd lsyncd-2.0.7
#./configure
#make && make install
3、新建同步目录
在服务器和客户端新建同步目录
复制代码 代码示例:
#mkdir /usr/share/test/
#chown nobody:nobody /usr/share/test/
二、服务器的配置:
1.安装rsync,同上。
2.配置
复制代码 代码示例:
#vi /etc/rsyncd.conf
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
[test]
path = /usr/share/test/ #保持数据的目录
hosts allow = 192.168.0.19 #允许访问的主机IP
uid = nobody
gid = nobody
read only = false #是否只读
三、在服务器端启动rsync
复制代码 代码示例:
#/usr/local/rsync/bin/rsync --daemon
使rsync随机器启动
echo "/usr/local/rsync/bin/rsync --daemon" >> /etc/rc.local
四、客户端配置lsyncd
1.建立配置文件lsyncd.conf
复制代码 代码示例:
#vi /etc/lsyncd.conf
/usr/share/test/ 192.168.30.206::test
说明:/usr/share/test/ #要实时同步的目录
192.168.30.206 #要实时同步到的远端机器
test #对应远端机器的rsync的tag。
如果要同步多台就在这个文件中每同步一台加一行
2.建立lsyncd日志文件
复制代码 代码示例:
#vi /etc/
logrotate.d/lsyncd
/var/log/lsyncd {
missingok
notifempty
sharedscripts
postrotate
/etc/rc.d/init.d/lsyncd restart 2>&1 > /dev/null || true
endscript
}
说明:它的日志保存的文件为/var/log/lsyncd,
3.建立lsyncd的启动文件
复制代码 代码示例:
#vi /etc/init.d/lsyncd
如下:
#!/bin/bash
#chkconfig: - 80 20
#lsyncd this is sync service
#
# description: lsyncd is sync service
/etc/rc.d/init.d/functions
lsyncd="/usr/local/bin/lsyncd"
lockfile="/var/lock/subsys/lsyncd"
pidfile="/var/run/lsyncd.pid"
function_start_lsyncd()
{
printf "Starting Lsyncd...n"
while read i
do
source=`echo $i |
linuxjishu/13830.html target=_blank class=infotextkey>awk '{print $1}'`
target=`echo $i | awk '{print $2}'`
$lsyncd -rsync $source $target
done < /etc/lsyncd.conf
}
function_stop_lsyncd()
{
printf "Stoping Lsyncd...n"
killall $lsyncd
}
function_restart_lsyncd()
{
printf "Restarting Lsyncd...n"
function_stop_lsyncd
function_start_lsyncd
}
if [ "$1" = "start" ]; then
function_start_lsyncd
elif [ "$1" = "stop" ]; then
function_stop_lsyncd
elif [ "$1" = "restart" ]; then
function_restart_lsyncd
else
printf "Usage: lsyncd.sh {start|stop|restart}n"
fi
为脚本加上执行权限:
复制代码 代码示例:
#chmod 755 /etc/init.d/lsyncd
启动lsyncd:
复制代码 代码示例:
#/etc/init.d/lsyncd start
确认lsyncd是否启动
复制代码 代码示例:
#/etc/rc.d/init.d/lsyncd status
lsyncd (pid 22863) is running...
把lsyncd加入到随机器启动当中
复制代码 代码示例:
#chkconfig lsyncd on
测试:
在服务器端的/usr/share/test/下建立一个文件。客户端的/usr/share/test/发现新建的文件已经同步过去了,养成定期检查日志文件/var/log/lsyncd的习惯,及时排查相关错误。
测试过程中把服务器端的lsyncd杀掉,在服务器端的/usr/share/test/中新建与删除文件,然后重启lsyncd服务器,在客户端查看时,发现对应的文件已经删除或同步过去了。
以上就是有关如何用lsyncd与rsync配置实时文件同步的全部内容了,希望对大家有所帮助。