CentOS rsync 数据备份工具

326 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第23天,点击查看活动详情

CentOS rsync 数据备份工具

环境: centos7

前言

来自百科: rsynclinux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。

服务端配置

安装xinetd

yum install -y xinetd

配置xinetd CentOS7安装之后没有/etc/xinetd.d/rsync 这个文件,只能自己创建一个了

cat >> /etc/xinetd.d/rsync << EOF
service rsync
{
        disable = no
        flags           = IPv6
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}
EOF

启动xinetd

systemctl restart  xinetd.service

配置rsync centos7 默认支持 rsync rsyncd.conf

cat >>   /etc/rsyncd.conf << EOF
# root用户
uid=root
gid=root
# 模块名称
[test]  
# 日志
log file = /var/log/rsyncd.log
# 同步目录
path=/test
# 最大连接数
max connections = 10
# 白名单
hosts allow = 192.168.233.128,192.168.233.129
# 黑名单
hosts deny = 0.0.0.0/32
read only = no
# 用户名
auth users =aa
# 密码文件
secrets file=/etc/rsyncd.pass
EOF

创建密码文件(格式: 用户名:密码)

cat >>  /etc/rsyncd.pass << EOF
aa:123
EOF

文件添加权限

chmod 600 /etc/rsyncd.pass
chmod 755 /test

启动

rsync --daemon --config=/etc/rsyncd.conf

客户端配置

创建密码文件并赋权限

cat >>  /etc/rsyncd.pass << EOF
# 密码要与服务端一致, 不需要用户名
123
EOF
# 添加权限
chmod 600 /etc/rsyncd.pass

手动测试同步

rsync -avzP --delete /test aa@192.168.233.129::test  --password-file /etc/rsyncd.pass

参数解释:

  • aa 用户名
  • 192.168.233.129 服务端ip
  • test 服务端 /etc/rsyncd.conf配置模块名称
  • /test 客户端拉取到同步文件存储位置
  • --password-file /etc/rsyncd.pass 密码文件

更多参数解释请使用rsync --help命令查看, 支持交互参数非常丰富, 这里仅截了一小部分

image.png 注意:

  • /test 在 aa@192.168.233.129::test 前面是上传到192.168.233.129
  • /test 在 aa@192.168.233.129::test 后面是从192.168.233.129下载
rsync -avzP --delete  aa@192.168.233.129::test /test --password-file /etc/rsyncd.pass

使用rsync可以配合inotify-toolssersync等工具来实现数据的实时同步

inotify-tools

安装

wget https://github.com/inotify-tools/inotify-tools/archive/refs/tags/3.21.9.6.tar.gz
tar -zxvf 3.21.9.6.tar.gz
cd inotify-tools-3.21.9.6/
# 这里如果报错需要安装automake
./autogen.sh
./configure
make && make install

启动 监控文件变化同步脚本

#!/bin/sh
/usr/local/inotify/bin/inotifywait -mrq -e create,move,delete,modify,attrib /test | while read file
do
rsync -avzP --delete /test aa@192.168.233.129::test --password-file /etc/rsyncd.pass
done

这里还可以添加一个守护脚本, 防止同步脚本挂掉