1. 首页 > 软件安装教程 > 正文

Rsync安装配置-Rsync数据同步安装配置_升级迁移详细过程

1. Rsync概述与环境规划

Rsync是一个开源的文件同步工具,用于在本地和远程系统之间同步文件和目录。Rsync支持增量同步,只传输文件的差异部分,大大提高了同步效率。更多学习教程www.fgedu.net.cn

1.1 Rsync版本说明

Rsync目前主要版本为3.x系列,本教程以Rsync 3.2.7为例进行详细讲解。Rsync 3.x版本相比之前版本在性能、稳定性和功能方面都有显著提升,支持更多的同步选项和特性。

# 查看Rsync版本
$ rsync –version
rsync version 3.2.7 protocol version 31

# 查看系统版本
$ cat /etc/os-release
NAME=”Oracle Linux Server”
VERSION=”8.9″
ID=”ol”
PRETTY_NAME=”Oracle Linux Server 8.9″

# 查看内核版本
$ uname -r
5.4.17-2136.302.7.2.el8uek.x86_64

1.2 环境规划

本次安装环境规划如下:

Rsync服务器:
rsync01.fgedu.net.cn (192.168.1.112) – Rsync主服务器
rsync02.fgedu.net.cn (192.168.1.113) – Rsync备用服务器

Rsync客户端:
client01.fgedu.net.cn (192.168.1.114) – Rsync客户端1
client02.fgedu.net.cn (192.168.1.115) – Rsync客户端2

Rsync版本:3.2.7
安装方式:RPM包安装
数据存储:本地磁盘

2. 硬件环境要求

Rsync作为文件同步工具,对硬件资源要求根据同步数据量和并发任务而定。学习交流加群风哥微信: itpux-com

2.1 物理主机环境要求

# Rsync服务器要求
– CPU:至少4核
– 内存:至少8GB
– 磁盘:系统盘120GB SSD + 数据盘1TB SSD

# Rsync客户端要求
– CPU:至少2核
– 内存:至少4GB
– 磁盘:系统盘120GB SSD + 数据盘500GB SSD

# 检查Rsync服务器资源
# free -h
total used free shared buff/cache available
Mem: 8G 2.4G 5.1G 128M 512M 5.4G
Swap: 4G 0B 4G

# 检查磁盘空间
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 120G 20G 100G 17% /
/dev/sdb1 1TB 100G 900G 10% /data

生产环境建议:Rsync服务器至少2个,实现高可用。建议使用SSD存储以提高I/O性能。网络带宽建议10Gbps以上,以支持大量数据传输。

2.2 vSphere虚拟主机环境要求

虚拟机配置:
– Rsync服务器:
– vCPU:4核
– 内存:8GB
– 磁盘:系统盘120GB SSD + 数据盘1TB SSD
– 网络:VMXNET3网卡,10Gbps网络

– Rsync客户端:
– vCPU:2核
– 内存:4GB
– 磁盘:系统盘120GB SSD + 数据盘500GB SSD
– 网络:VMXNET3网卡,10Gbps网络

资源池配置:
– CPU预留:Rsync服务器2GHz,Rsync客户端1GHz
– 内存预留:Rsync服务器4GB,Rsync客户端2GB
– 内存限制:Rsync服务器8GB,Rsync客户端4GB
– CPU份额:正常
– 内存份额:正常

2.3 云平台主机环境要求

云主机规格(阿里云/腾讯云/华为云):
– Rsync服务器:
– 实例规格:ecs.g6.2xlarge或同等规格
– vCPU:8核
– 内存:16GB
– 系统盘:SSD云盘 120GB
– 数据盘:SSD云盘 1TB
– 网络带宽:10Gbps以上

– Rsync客户端:
– 实例规格:ecs.g6.xlarge或同等规格
– vCPU:4核
– 内存:8GB
– 系统盘:SSD云盘 120GB
– 数据盘:SSD云盘 500GB
– 网络带宽:10Gbps以上

存储配置:
– OSS对象存储:用于存储备份数据
– NAS文件存储:用于共享配置文件
– 云盘快照:定期备份数据

3. 操作系统环境准备

在安装Rsync之前,需要对操作系统进行必要的配置和优化。

3.1 操作系统版本检查

# 检查操作系统版本
# cat /etc/os-release
NAME=”Oracle Linux Server”
VERSION=”8.9″
ID=”ol”
PRETTY_NAME=”Oracle Linux Server 8.9″

# 检查内核版本
# uname -r
5.4.17-2136.302.7.2.el8uek.x86_64

# 检查SELinux状态
# getenforce
Enforcing

# 检查防火墙状态
# systemctl status firewalld
● firewalld.service – firewalld – dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running)

3.2 依赖服务安装

# 安装依赖包
# dnf install -y wget curl tar gzip

# 关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld

# 关闭SELinux
# setenforce 0
# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config

# 创建Rsync用户
# useradd -r -s /bin/false rsync

# 创建目录结构
# mkdir -p /data/rsync/{config,bin,data}
# chown -R rsync:rsync /data/rsync

3.3 配置网络

# 配置静态IP
# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.112
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114

# 重启网络
# systemctl restart NetworkManager

# 验证网络
# ping -c 4 google.com

4. Rsync安装配置

完成环境准备后,开始安装Rsync。

4.1 安装Rsync

# 安装Rsync
# dnf install -y rsync

# 验证安装
# rsync –version
rsync version 3.2.7 protocol version 31

# 查看Rsync路径
# which rsync
/usr/bin/rsync

4.2 配置Rsync服务器

# 创建Rsync配置文件
# vi /etc/rsyncd.conf
uid = rsync
gid = rsync
use chroot = no
max connections = 10
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

[backup]
path = /data/rsync/data
comment = Backup directory
read only = no
write only = no
list = yes
uid = rsync
gid = rsync
auth users = rsync
secrets file = /etc/rsyncd.secrets

# 创建Rsync密码文件
# vi /etc/rsyncd.secrets
rsync:password

# 设置密码文件权限
# chmod 600 /etc/rsyncd.secrets

# 创建数据目录
# mkdir -p /data/rsync/data
# chown -R rsync:rsync /data/rsync/data

# 启动Rsync服务
# systemctl start rsyncd
# systemctl enable rsyncd

# 验证服务状态
# systemctl status rsyncd

4.3 配置Rsync客户端

# 安装Rsync
# dnf install -y rsync

# 创建Rsync密码文件
# vi /etc/rsync.passwd
password

# 设置密码文件权限
# chmod 600 /etc/rsync.passwd

# 测试Rsync同步
# rsync -avz –password-file=/etc/rsync.passwd /etc rsync@192.168.1.112::backup/etc

# 验证同步
# ls -la /data/rsync/data/etc

5. Rsync配置优化

为了提高Rsync的性能和稳定性,需要进行一些配置优化。

5.1 基本配置优化

# 编辑Rsync配置文件
# vi /etc/rsyncd.conf
uid = rsync
gid = rsync
use chroot = no
max connections = 50
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

[backup]
path = /data/rsync/data
comment = Backup directory
read only = no
write only = no
list = yes
uid = rsync
gid = rsync
auth users = rsync
secrets file = /etc/rsyncd.secrets

# 重启Rsync服务
# systemctl restart rsyncd

5.2 高可用配置

# 在两台服务器上安装Rsync
# dnf install -y rsync

# 配置主服务器
# vi /etc/rsyncd.conf
uid = rsync
gid = rsync
use chroot = no
max connections = 50
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

[backup]
path = /data/rsync/data
comment = Backup directory
read only = no
write only = no
list = yes
uid = rsync
gid = rsync
auth users = rsync
secrets file = /etc/rsyncd.secrets

# 配置备用服务器
# vi /etc/rsyncd.conf
uid = rsync
gid = rsync
use chroot = no
max connections = 50
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

[backup]
path = /data/rsync/data
comment = Backup directory
read only = no
write only = no
list = yes
uid = rsync
gid = rsync
auth users = rsync
secrets file = /etc/rsyncd.secrets

# 启动Rsync服务
# systemctl start rsyncd
# systemctl enable rsyncd

5.3 内存配置

# 编辑Rsync启动配置
# vi /etc/sysconfig/rsyncd
RSYNC_ENABLE=”yes”
RSYNC_OPTS=”–daemon –max-connections=50 –timeout=300″

# 重启Rsync服务
# systemctl restart rsyncd

6. Rsync服务器配置

Rsync服务器负责接收和存储来自客户端的同步数据。

6.1 配置模块

# 编辑Rsync配置文件
# vi /etc/rsyncd.conf
[backup]
path = /data/rsync/data
comment = Backup directory
read only = no
write only = no
list = yes
uid = rsync
gid = rsync
auth users = rsync
secrets file = /etc/rsyncd.secrets

[web]
path = /data/rsync/web
comment = Web directory
read only = no
write only = no
list = yes
uid = rsync
gid = rsync
auth users = rsync
secrets file = /etc/rsyncd.secrets

[database]
path = /data/rsync/database
comment = Database directory
read only = no
write only = no
list = yes
uid = rsync
gid = rsync
auth users = rsync
secrets file = /etc/rsyncd.secrets

# 创建数据目录
# mkdir -p /data/rsync/{web,database}
# chown -R rsync:rsync /data/rsync/{web,database}

# 重启Rsync服务
# systemctl restart rsyncd

6.2 配置访问控制

# 编辑Rsync配置文件
# vi /etc/rsyncd.conf
[backup]
path = /data/rsync/data
comment = Backup directory
read only = no
write only = no
list = yes
uid = rsync
gid = rsync
auth users = rsync
secrets file = /etc/rsyncd.secrets
hosts allow = 192.168.1.0/24
hosts deny = *

# 重启Rsync服务
# systemctl restart rsyncd

7. Rsync客户端配置

Rsync客户端负责向服务器发送同步数据。

7.1 配置同步脚本

# 创建同步脚本
# vi /data/rsync/scripts/sync.sh

#!/bin/bash
LOG_FILE=”/var/log/rsync_sync.log”
ALERT_EMAIL=”admin@fgedu.net.cn”

# 同步/etc目录
echo “$(date): Syncing /etc directory…” >> $LOG_FILE
rsync -avz –password-file=/etc/rsync.passwd /etc rsync@192.168.1.112::backup/etc

# 同步/home目录
echo “$(date): Syncing /home directory…” >> $LOG_FILE
rsync -avz –password-file=/etc/rsync.passwd /home rsync@192.168.1.112::backup/home

# 同步/opt目录
echo “$(date): Syncing /opt directory…” >> $LOG_FILE
rsync -avz –password-file=/etc/rsync.passwd /opt rsync@192.168.1.112::backup/opt

# 发送邮件通知
echo “Rsync sync completed” | mail -s “Rsync Sync Status” $ALERT_EMAIL

# 添加执行权限
# chmod +x /data/rsync/scripts/sync.sh

# 添加定时任务
# crontab -e
0 0 * * * /data/rsync/scripts/sync.sh

7.2 配置增量同步

# 创建增量同步脚本
# vi /data/rsync/scripts/incremental_sync.sh

#!/bin/bash
LOG_FILE=”/var/log/rsync_incremental.log”

# 增量同步
echo “$(date): Starting incremental sync…” >> $LOG_FILE
rsync -avz –password-file=/etc/rsync.passwd –delete /data/app rsync@192.168.1.112::backup/app

# 记录同步状态
echo “$(date): Incremental sync completed” >> $LOG_FILE

# 添加执行权限
# chmod +x /data/rsync/scripts/incremental_sync.sh

# 添加定时任务
# crontab -e
*/30 * * * * /data/rsync/scripts/incremental_sync.sh

8. Rsync安全配置

Rsync提供了多种安全功能,包括认证、授权、TLS加密等。

8.1 认证配置

# 编辑Rsync配置文件
# vi /etc/rsyncd.conf
[backup]
path = /data/rsync/data
comment = Backup directory
read only = no
write only = no
list = yes
uid = rsync
gid = rsync
auth users = rsync
secrets file = /etc/rsyncd.secrets

# 创建Rsync密码文件
# vi /etc/rsyncd.secrets
rsync:strong-password

# 设置密码文件权限
# chmod 600 /etc/rsyncd.secrets

# 重启Rsync服务
# systemctl restart rsyncd

8.2 SSH加密配置

# 生成SSH密钥
# ssh-keygen -t rsa -b 2048

# 复制公钥到服务器
# ssh-copy-id rsync@192.168.1.112

# 测试SSH连接
# ssh rsync@192.168.1.112

# 使用SSH同步
# rsync -avz -e ssh /etc rsync@192.168.1.112:/data/rsync/data/etc

8.3 防火墙配置

# 配置防火墙
# firewall-cmd –permanent –add-port=873/tcp
# firewall-cmd –reload

# 验证防火墙配置
# firewall-cmd –list-ports

9. Rsync性能优化

在生产环境中,需要对Rsync进行性能优化以提高同步效率。from:www.itpux.com

9.1 网络优化

# 优化网络参数
# vi /etc/sysctl.conf
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 15

# 应用配置
# sysctl -p

9.2 磁盘优化

# 优化磁盘I/O
# vi /etc/sysctl.conf
vm.swappiness = 0
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10

# 应用配置
# sysctl -p

# 优化XFS文件系统
# vi /etc/fstab
/dev/sdb1 /data/rsync/data xfs defaults,noatime,nodiratime 0 0

# 重新挂载
# mount -o remount /data/rsync/data

9.3 Rsync参数优化

# 使用优化参数同步
# rsync -avz –password-file=/etc/rsync.passwd –compress-level=9 –checksum –delete –timeout=300 /data/app rsync@192.168.1.112::backup/app

# 调整Rsync服务器参数
# vi /etc/rsyncd.conf
max connections = 100
timeout = 300

# 重启Rsync服务
# systemctl restart rsyncd

10. Rsync升级迁移

本节介绍Rsync的版本升级和数据迁移方法。

10.1 Rsync版本升级

# 备份Rsync配置
# cp /etc/rsyncd.conf /backup/rsync-config-$(date +%Y%m%d)

# 停止Rsync服务
# systemctl stop rsyncd

# 升级Rsync
# dnf update -y rsync

# 启动Rsync服务
# systemctl start rsyncd

# 验证升级
# rsync –version
rsync version 3.2.7 protocol version 31

# 测试Rsync服务
# rsync -avz –password-file=/etc/rsync.passwd /etc rsync@192.168.1.112::backup/etc

10.2 Rsync数据迁移

# 备份原Rsync数据
# tar -czf /backup/rsync-data-$(date +%Y%m%d).tar.gz /data/rsync/data

# 在新服务器上恢复数据
# tar -xzf /backup/rsync-data-20230405.tar.gz -C /

# 安装Rsync
# dnf install -y rsync

# 配置Rsync服务器
# 重复配置步骤

# 启动Rsync服务
# systemctl start rsyncd
# systemctl enable rsyncd

# 验证迁移
# rsync -avz –password-file=/etc/rsync.passwd /etc rsync@192.168.1.112::backup/etc

11. Rsync备份恢复

本节介绍Rsync的备份和恢复方法。

11.1 Rsync备份

# 创建备份脚本
# vi /data/rsync/scripts/backup.sh

#!/bin/bash
BACKUP_DIR=”/backup/rsync”
DATE=$(date +%Y%m%d)

# 创建备份目录
mkdir -p $BACKUP_DIR

# 停止Rsync服务
systemctl stop rsyncd

# 备份配置文件
cp /etc/rsyncd.conf $BACKUP_DIR/rsyncd.conf-$DATE
cp /etc/rsyncd.secrets $BACKUP_DIR/rsyncd.secrets-$DATE

# 备份数据
tar -czf $BACKUP_DIR/rsync-data-$DATE.tar.gz /data/rsync/data

# 启动Rsync服务
systemctl start rsyncd

# 清理旧备份(保留7天)
find $BACKUP_DIR -type f -mtime +7 -exec rm -f {} \;

# 添加执行权限
# chmod +x /data/rsync/scripts/backup.sh

# 添加定时任务
# crontab -e
0 0 * * * /data/rsync/scripts/backup.sh

11.2 Rsync恢复

# 停止Rsync服务
# systemctl stop rsyncd

# 清理现有数据
# rm -rf /data/rsync/data

# 恢复数据
# tar -xzf /backup/rsync/rsync-data-20230405.tar.gz -C /

# 恢复配置文件
# cp /backup/rsync/rsyncd.conf-20230405 /etc/rsyncd.conf
# cp /backup/rsync/rsyncd.secrets-20230405 /etc/rsyncd.secrets
# chmod 600 /etc/rsyncd.secrets

# 启动Rsync服务
# systemctl start rsyncd

# 验证恢复
# systemctl status rsyncd
# rsync -avz –password-file=/etc/rsync.passwd /etc rsync@192.168.1.112::backup/etc

11.3 Rsync监控脚本

# 创建Rsync监控脚本
# vi /data/rsync/scripts/monitor.sh

#!/bin/bash
LOG_FILE=”/var/log/rsync_monitor.log”
ALERT_EMAIL=”admin@fgedu.net.cn”

check_rsync_status() {
echo “$(date): Checking rsync status…” >> $LOG_FILE
status=$(systemctl status rsyncd | grep Active | awk ‘{print $2}’)
if [ “$status” != “active” ]; then
echo “$(date): Rsync is not running” >> $LOG_FILE
echo “Rsync is not running” | mail -s “Rsync Alert” $ALERT_EMAIL
systemctl start rsyncd
else
echo “$(date): Rsync is running” >> $LOG_FILE
fi
}

check_disk_space() {
echo “$(date): Checking disk space…” >> $LOG_FILE
usage=$(df -h /data/rsync/data | tail -1 | awk ‘{print $5}’ | sed ‘s/%//’)
if [ $usage -gt 90 ]; then
echo “$(date): Disk space warning: /data/rsync/data is $usage% full” >> $LOG_FILE
echo “Disk space warning: /data/rsync/data is $usage% full” | mail -s “Rsync Alert” $ALERT_EMAIL
else
echo “$(date): Disk space: /data/rsync/data is $usage% full” >> $LOG_FILE
fi
}

check_rsync_port() {
echo “$(date): Checking rsync port…” >> $LOG_FILE
port=$(netstat -tuln | grep 873)
if [ -z “$port” ]; then
echo “$(date): Rsync port 873 is not open” >> $LOG_FILE
echo “Rsync port 873 is not open” | mail -s “Rsync Alert” $ALERT_EMAIL
systemctl restart rsyncd
else
echo “$(date): Rsync port 873 is open” >> $LOG_FILE
fi
}

main() {
check_rsync_status
check_disk_space
check_rsync_port
}

main

# 添加执行权限
# chmod +x /data/rsync/scripts/monitor.sh

# 添加定时任务
# crontab -e
*/15 * * * * /data/rsync/scripts/monitor.sh

生产环境建议:定期备份Rsync配置和数据,建议每天执行一次完整备份。监控脚本建议每15分钟执行一次,及时发现并处理问题。恢复操作前务必停止Rsync服务,避免数据不一致。

通过以上步骤,Rsync安装配置、性能优化、升级迁移、备份恢复等内容已全部完成。Rsync作为开源文件同步工具,能够高效地同步文件和目录,是企业级数据同步的重要工具。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息