两台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、同步测试
在客户端对应目录新建文件,增删改,看一下目标服务器是否改变。
人到了一定时候,心里会丢掉一片海,好像那些需要靠岸的日子从未出现过一样
----里则林