rsync lsync

 

[1] Install xinetd on HostA and HostB.
[root@lan ~]# 
yum -y install xinetd


[root@lan ~]# 
vi /etc/xinetd.d/rsync


# default: off
# description: The rsync server is a good addition to an ftp server, as it \
#      allows crc checksumming etc.
service rsync
{
disable
no
# change

socket_type
= stream

wait
= no

user
= root

server
= /usr/bin/rsync

server_args
= --daemon

log_on_failure
+= USERID

}

[root@lan ~]# 
/etc/rc.d/init.d/xinetd start

Starting xinetd:
[  OK  ]

[root@lan ~]# 
chkconfig xinetd on

[root@lan ~]# 
chown nobody. /home/backup

[root@lan ~]# 
vi /etc/rsyncd.conf


# any name you like

[site]
# destination directory

path = /home/backup
# IP address you allow that connect to this server

hosts allow = 192.168.0.0/24
# allow update

read only = false
[2] Install and configure Lsync on HostA. Get latest lsync from here when you run wget.
# install some requied packages

[root@www ~]# 
yum -y install libxml2-devel zlib-devel readline-devel


[root@www ~]# 
wget http://lsyncd.googlecode.com/files/lsyncd-1.26.tar.gz


[root@www ~]# 
tar zxvf lsyncd-1.26.tar.gz

[root@www ~]# 
cd lsyncd-1.26

[root@www lsyncd-1.26]# 
./configure

[root@www lsyncd-1.26]# 
make

[root@www lsyncd-1.26]# 
make install

[root@www lsyncd-1.26]# 
cp lsyncd.conf.xml /etc/lsyncd.conf.xml

[root@www lsyncd-1.26]# 
[root@www ~]# 
rm -rf lsyncd-1.26

[root@www ~]# 
vi /etc/lsyncd.conf.xml


# line 61: change to mirrored directory

<source path="
/var/www/html
"/>

# line 62: destination directory which name is the one in rsyncd.conf on the section [1]

<target path="
192.168.0.20::site/
"/> 

[root@www ~]# 
vi /etc/rc.d/init.d/lsyncd
   
# create init script


# it's an example

#!/bin/bash
#
# lsyncd: Starts the lsync Daemon
#
# chkconfig: 345 99 90
# description: 
Lsyncd uses rsync to synchronize local directories with a remote

#
machine running rsyncd. Lsyncd watches multiple directories

#
trees through inotify. The first step after adding the watches

#
is to, rsync all directories with the remote host, and then sync

#
single file buy collecting the inotify events.

# processname: lsyncd

. /etc/rc.d/init.d/functions

config="/etc/lsyncd.conf.xml"
lsyncd="/usr/local/bin/lsyncd"
lockfile="/var/lock/subsys/lsyncd"
prog="lsyncd"
RETVAL=0

start() {
if [ -f $lockfile ]; then

echo -n $"$prog is already running: "

echo

else

echo -n $"Starting $prog: "

daemon $lsyncd --conf=$config

RETVAL=$?

echo

[ $RETVAL = 0 ] && touch $lockfile

return $RETVAL

fi

}
stop() {
echo -n $"Stopping $prog: "

killproc $lsyncd

RETVAL=$?

echo

[ $RETVAL = 0 ] && rm -f $lockfile

return $RETVAL

}
case "$1" in
start)

start

;;

stop)

stop

;;

restart)

stop

start

;;

status)

status $lsyncd

;;

*)

echo "Usage: lsyncd {start|stop|restart|status}"

exit 1

esac

exit $?


[root@www ~]# 
vi /etc/logrotate.d/lsyncd


# set logrotation

/var/log/lsyncd {
   daily
   copytruncate
   compress
   notifempty
   missingok
   postrotate
     /etc/rc.d/init.d/lsyncd restart 2>&1 > /dev/null || true
   endscript
}


[root@www ~]# 
chmod 755 /etc/rc.d/init.d/lsyncd

[root@www ~]# 
/etc/rc.d/init.d/lsyncd start

Starting lsyncd: 
[  OK  ]

[root@www ~]# 
chkconfig --add lsyncd

[root@www ~]# 
chkconfig lsyncd on
[3] Make sure on HostB that files are copied normally. 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章