Centos7安装rsync 并利用rsync实现文件同步

测试环境

CentOS 7 Rsync服务端:192.168.25.21 

CentOS 7 Rsync客户端:192.168.24.89

一、服务端安装配置

1、Rsync服务端和客户端都需要安装rsync

yum -y install rsync

2、服务端配置文件

 编辑配置文件 vim /etc/rsyncd.conf
内容如下:
motd file = /etc/rsyncd.motd
transfer logging = yes
fake super = yes
log file = /var/log/rsyncd.log
port = 873
address = 192.168.25.21
uid = rsync
gid = rsync
use chroot = no
read only = no
max connections = 10
[rsync_dir] 
comment = rsync info
path = /opt/data_bak
ignore errors
auth users = rsync
secrets file = /etc/rsyncd.secrets
hosts allow = 192.168.0.0/255.255.0.0
hosts deny = *
list = false

*****以下不用粘贴*****

#192.168.25.21 绑定IP
# /opt/data_bak 服务端接收目录
#[rsync_dir]  括号内的名称,客户端推送时要使用

3、创建用户及接收目录

useradd rsync -s /sbin/nologin -M
mkdir /opt/data_bak
chown rsync.rsync /opt/data_bak -R

4、创建提示信息文件

echo "hahaha"> /etc/rsyncd.motd

5、创建用户密码文件

echo "rsync:Snail" > /etc/rsyncd.secrets 
chmod 600 /etc/rsyncd.secrets

#必须为600权限,密码在客户端同步时要使用

6、启动服务

systemctl restart rsyncd   或 rsync --daemon
systemctl enable rsyncd    #服务端自启用下面脚本
或将启动写入 rc.local
echo "/usr/bin/rsync --daemon" >> /etc/rc.local
chmod +x /etc/rc.d/rc.local

二、客户端安装配置

1、安装软件

yum -y install rsync
mkdir /tmp/testdir && cd  /tmp/testdir

2、创建测试文件

echo 1 >1.txt 
echo 2>2.txt echo 3 >3.txt

3、创建密码文件

echo "Snail">/etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets

4、启动服务

systemctl restart rsyncd
systemctl enable rsyncd
netstat -lnp|grep 873

5、文件推送测试

rsync -av /tmp/testdir/ rsync@192.168.25.21 ::rsync_dir --password-file=/etc/rsyncd.secrets
# rsync_dir 为服务端文件中的目录别称,非直接的目录

6、定时自动推送

vim /opt/db_backup

#!/bin/bash
dbhost=`hostname`
BACKUP_DIR=/tmp/testdir
DB_FILE_ZIP=${BACKUP_DIR}/*.txt
rsync -av ${DB_FILE_ZIP} rsync@192.168.25.21::rsync_dir/$dbhost/ --password-file=/etc/rsyncd.secrets