两台Linux服务器文件同步

时间:2023-03-08 22:36:41
两台Linux服务器文件同步

在给公司或者学校做系统部署的时候,为了数据安全往往我们至少需要两台服务器,接下来请看:

我们要实现的是把客户端(192.168.0.1)的复制到目标服务器(192.168.0.2)

一、目标服务器

1、安装rsync

yum -y install xinetd rsync

2、修改配置

  vi /etc/xinetd.d/rsync,将yes改成no

# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = no
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}

vi /etc/rsyncd.conf增加要同步的目录

uid=root
gid=root
use chroot=no
max connections=20
secrets file=/etc/rsync_pass
pid file=/var/run/rsyncd.pid
log file=/var/log/rsyncd.log [backup]
path=/opt/test
comment=Rsync share test
auth users=root
read only=no
hosts allow=192.168.0.1
hosts deny=*

vi /etc/rsync_pass  配置访问的用户名和密码(这里写root)

root:123456

3、授权并重启服务

chown root:root /etc/rsync_pass
chmod 600 /etc/rsync_pass
chkconfig xinetd on
service xinetd restart

4、检测873端口在吗(防火墙里需要打开该端口)

netstat -natp

5、关闭Selinux(永久更改)

# vi /etc/sysconfig/selinux,将SELINUX=enforcing 修改为SELINUX=disable或者SELINUX=permissive重启服务器

二、客户端配置

1、安装rsync(同上)

2、修改密码文件

vi /etc/rsync_pass 填写和目标服务器里一样的密码

123456

3、授权

chmod 600 /etc/rsync_pass

4、新建客户端备份的文件夹

mkdir /opt/test/backup

5、安装inotify-tools(实时同步用)

6、将压缩包inotify-tools-3.14.tar.gz拷贝到你的目录,比如/opt

7、解压缩

tar -zxvf inotify-tools-3.14.tar.gz

8、进入目录安装

cd inotify-tools-3.14
./configure
make&make install
如果执行有问题
则执行yum install gcc

9、新建脚本文件inotifyrsync.sh

#!/bin/bash
inotify_rsync_fun ()
{
dir=`echo $1 | awk -F"," '{print $1}'`
ip=`echo $1 | awk -F"," '{print $2}'`
des=`echo $1 | awk -F"," '{print $3}'`
user=`echo $1 | awk -F"," '{print $4}'`
/usr/local/bin/inotifywait -mr --timefmt '%d/%m/%y %H:%M' --format '%T %w %f' -e modify,delete,create,attrib ${dir} | while read DATE TIME DIR FILE
do
FILECHAGE=${DIR}${FILE}
/usr/bin/rsync -av --progress --delete --password-file=/etc/rsync_pass ${dir} ${user}@${ip}::${des} && echo "At ${TIME} on ${DATE},
    file $FILECHAGE was backed up via rsync" >> /var/log/rsyncd.log
done
}
count=1
# localdir,host,rsync_module,user of rsync_module,
sync1="/opt/ztb/,192.168.0.2,backup,root"
#############################################################
#main
i=0
while [ ${i} -lt ${count} ]
do
i=`expr ${i} + 1`
tmp="sync"$i
eval "sync=\$$tmp"
inotify_rsync_fun "$sync" &
done

10、授权并执行

chmod 755 inotifyrsync.sh 
bash inotifyrsync.sh &

11、同步测试

在客户端对应目录新建文件,增删改,看一下目标服务器是否改变。

  人到了一定时候,心里会丢掉一片海,好像那些需要靠岸的日子从未出现过一样

                                        ----里则林