光影工作室

【转】CentOS Rsync服务端与CentOS Rsync客户端实现数据同步

发布时间:5年前热度: 4869 ℃评论数:

说明:
1、Rsync服务端
系统:CentOS 6.9
IP地址:111.111.111.111
数据存放目录:/var/www                #网站的目录
2、cwRsync客户端
系统:CentOS 6.9
IP地址:内网IP,192.168.1.10,所在的公网IP:111.111.222.222
同步的目录:/data/bak
实现目的:
Rsync客户端每5分钟自动同步Rsync服务端/var/www目录中的数据到/data/bak目录
一、Rsync服务端配置
1、关闭SELINUX
vi /etc/selinux/config #编辑防火墙配置文件
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq #保存,关闭
shutdown -r now #重启系统

2、开启防火墙tcp 873端口(Rsync默认端口)
vi /etc/sysconfig/iptables #编辑防火墙配置文件
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 873 -j ACCEPT
:wq! #保存
/etc/init.d/iptables restart #最后重启防火墙使配置生效

3、添Rsync用户bakuser,并赋予root权限

#adduser bakuser        //添加一个名为bakuser的用户
#passwd 123456         //修改密码
Changing password for user tommy.
New UNIX password:     //在这里输入新密码
Retype new UNIX password:  //再次输入新密码
passwd: all authentication tokens updated successfully.

修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:

## Allow root to run any commands anywhere
root    ALL=(ALL)     ALL
bakuser  ALL=(ALL)     ALL

修改完毕,现在可以用bakuser帐号登录,然后用命令 su – ,即可获得root权限进行操作。
4、安装Rsync服务端软件
yum install rsync xinetd   #安装
vi /etc/xinetd.d/rsync  #编辑配置文件,设置开机启动rsync
disable = no #修改为
/etc/init.d/xinetd start  #启动(CentOS中是以xinetd 来管理Rsync服务的)
5、创建rsyncd.conf配置文件
vi /etc/rsyncd.conf  #创建配置文件,添加以下代码
log file = /var/log/rsyncd.log   #日志文件位置,启动rsync后自动产生这个文件,无需提前创建。
[bak]    #自定义名称
path = /var/www   #Rsync服务端数据目录路径
comment = osyunwei    #模块名称与[osyunwei]自定义名称相同
uid = root  #设置rsync运行权限为root
gid = root  #设置rsync运行权限为root
port=873    #默认端口
read only = no   #设置为no,cwRsync客户端可上传文件,yes只读
write only = no  #设置为no,cwRsync客户端可下载文件,yes不能下载
auth users = bakuser  #执行数据同步的用户名,可以设置多个,用英文状态下逗号隔开
secrets file = /etc/rsync.pass   #用户认证配置文件,里面保存用户名称和密码,后面会创建这个文件
hosts allow = 111.111.222.222 #允许进行数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开
#hosts deny = 192.168.21.254   #禁止数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开
list = yes  #显示Rsync服务端资源列表

:wq! #保存
6、创建用户认证文件
vi  /etc/rsync.pass     #配置文件,添加以下内容
bakuser:123456  #格式,用户名:密码,可以设置多个,每行一个用户名:密码
:wq! #保存
7、设置文件权限
chmod 600 /etc/rsyncd.conf  #设置文件所有者读取、写入权限
chmod 600 /etc/rsync.pass   #设置文件所有者读取、写入权限
8、启动rsync
/etc/init.d/xinetd start   #启动
service xinetd stop   #停止
service xinetd restart #重新启动

二、客户端配置

1、下载安装rsync

yum install rsync -y

2、配置rsync client

设定密码

# vi /etc/rsync.pas

111111

修改权限

# cd /etc

# chown root.root rsync.pas

# chmod 600 rsync.pas

 

3client连接SERVER

 SERVER端取文件

# rsync -vzrtopg –progress –delete bakuser@111.111.111.111::bak /data/bak/ –password-file=/etc/rsync.pas

SERVER端上传文件

# rsync -vzrtopg –progress –password-file=/etc/rsync.pas  /data/bak/ bakuser@111.111.111::bak

4、定时备份

新建脚本:# vi /data/srcipt/bak.sh

#!/bin/bash

rsync -vzrtopg –progress –delete bakuser@111.111.111.111::bak /data/bak/ –password-file=/etc/rsync.pas

wq!保存退出

# chmod u+x /data/srcipt/bak.sh

添加计划任务

执行命令:

crontab -e
这时就像使用vi编辑器一样,可以对计划任务进行编辑。
输入以下内容并保存:

*/5 * * * * /data/srcipt/bak.sh

意思是每5分钟执行一次shell脚本“/data/srcipt/bak.sh”。

centos,centos