CentOS 使用 rsync 同步文件

rsync 是一个常用的 Linux 应用程序,用于文件同步。rsync 服务可以实现数据的同步,但不是自动同步。

我们将A源服务器(192.168.201)指定的目录同步到B目标服务器(192.168.200)指定的目录。

因此B服务器需要在873端口开启rsync服务,A服务器仅使用rsync命令就可以实现文件同步。

我们这里使用虚拟机,具体操作请参考 VirtualBox5虚拟机安装CentOS-7-x86_64

首先B服务器(192.168.200)搭建 rsync 环境

1. 关闭SELINUX,省略

2. 然后启动双网卡,配置静态IP(192.168.0.200),省略

3. 服务器端开启 873 端口

	yum -y install iptables-services

	vi /etc/sysconfig/iptables
	
		-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

		-A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
		
	:wq
 
	systemctl disable firewalld.service

	systemctl enable iptables.service

4. 安装  rsync

    yum -y install rsync

5. 添加启动用户,如果我们同步的是Web目录,且使用apache或者nginx的话,可以直接使用它们对应的用户

	groupadd rsyncuser
 
	useradd -g rsyncuser rsyncuser -s /sbin/nologin

6. 修改配置文件

	vi /etc/rsyncd.conf

		uid = rsyncuser				#设置rsync运行用户
		gid = rsyncuser				#设置rsync运行用户
		use chroot = yes
		max connections = 4
		
		pid file = /var/run/rsyncd.pid
		lock file = /var/run/rsync.lock
		log file = /var/log/rsyncd.log
		auth users = opuser			        #用户认证
		secrets file = /etc/rsyncd.pswd		#用户认证配置文件
		
		exclude = lost+found/
		transfer logging = yes
		timeout = 900
		ignore nonreadable = yes
		dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
		
		[tongbu]
		path = /data/www/Public
		comment = tongbu export area
		ignore errors = yes			    #忽略IO错误
		read only = no				    #设置rsync服务端文件为读写权限
		list = no 				        #不显示rsync服务端资源列表
		hosts allow = 192.168.0.201		#允许进行数据同步的客户端IP地址
		#hosts deny = *				    #禁止数据同步的客户端IP地址
		
	:wq

7.  创建客户端密码文件

	vi /etc/rsyncd.pswd
		opuser:QAZ123WSX456
	:wq
	chmod 600 /etc/rsyncd.pswd

8. 启动rsync服务

    systemctl start rsyncd.service
	systemctl enable rsyncd.service
	netstat -lnp|grep 873

9. 创建/data/www/Public目录,并随意写一个text.txt文件

	mkdir /data
	mkdir /data/www
	mkdir /data/www/Public
		
	chown -R rsyncuser:rsyncuser /data/www/Public	

	cd /data/www/Public
	echo "hello" > hello.txt
	ls

到这里位置,环境就配置完了,下面来给A服务器(192.168.0.201)安装 rsync 

1. 关闭SELINUX,省略

2. 然后启动双网卡,配置静态IP(192.168.0.201),省略

3. 安装  rsync

yum -y install rsync

4. 创建客户端密码文件,注意这里只有密码!!!

	vi /etc/rsyncd.pswd
		QAZ123WSX456
	:wq
	chmod 600 /etc/rsyncd.pswd

5. 我们在A服务器(192.168.0.201)上执行如下命令,即可同步上面的hello.txt文件

    mkdir /data
    mkdir /data/www
    mkdir /data/www/Public
    cd /data/www/Public
		
    rsync -avz [email protected]::tongbu --password-file=/etc/rsyncd.pswd /data/www/Public/
		
    ls

CentOS 使用 rsync 同步文件_第1张图片

从截图里面可以看到,我们已经从把B服务器上面的文件同步到了本地。

6. 从本地A服务器推送给B服务器文件:

	cd /data/www/Public

	echo "hi" > hi.txt

	rsync -avz /data/www/Public/ [email protected]::tongbu --password-file=/etc/rsyncd.pswd

CentOS 使用 rsync 同步文件_第2张图片

去B服务器的/data/www/Public/目录看看,是否存在 hi.txt 文件吧!

rsync服务可以实现数据的同步,但不是自动同步,需要用到inotify进行自动监控。

sersync其实是利用inotify和rsync两种软件技术来实现数据实时同步功能的,

inotify是用于监听sersync所在服务器上的文件变化,

结合rsync软件来进行数据同步,将数据实时同步给客户端服务器。

 

你可能感兴趣的:(系统,环境,数据同步,rsync)