CentOS7 rsync+inotify异机实时备份部署方案

作者:Q师傅 发布时间: 2022-07-11 阅读量:0 评论数:0

CentOS7 rsync+inotify实现文件实时同步

一、需求背景

在服务器A上产生重要文件,需要实时同步到服务器B作为备份,防止数据丢失。本文档介绍如何使用rsync和inotify-tools实现文件实时同步,并在服务器B上保留9天的历史文件。

二、环境信息

  • 服务器A(源):IP 10.19.222.147,主机名hosta,同步目录 /opt/opsmgr/backup
  • 服务器B(目标):IP 10.19.222.135,主机名hostb,接收目录 /home/backup

三、实现步骤

3.1 配置SSH免密登录

在服务器A上操作:

生成SSH密钥:

ssh-keygen -t rsa

生成密钥

修改SSH配置允许root登录:

vi /etc/ssh/sshd_config

将 PermitRootLogin without-password 改为 PermitRootLogin no

修改SSH配置

重启SSH服务:

systemctl restart sshd

查看公钥:

cat /root/.ssh/id_rsa.pub

查看公钥

在服务器B上操作:

创建SSH目录:

mkdir /root/.ssh
chmod 700 /root/.ssh

将服务器A的公钥添加到authorized_keys:

vi /root/.ssh/authorized_keys

粘贴服务器A的公钥内容。

添加公钥

设置权限:

chmod 600 /root/.ssh/authorized_keys

修改SSH配置:

vi /etc/ssh/sshd_config

将 PermitRootLogin without-password 改为 PermitRootLogin no

修改SSH配置

重启SSH服务:

systemctl restart sshd

测试免密登录:

在服务器A上测试登录服务器B:

ssh -p 22 root@10.19.222.135

测试免密登录

3.2 安装rsync和inotify-tools

从阿里云镜像下载rpm包:

https://developer.aliyun.com/packageSearch

下载rpm包

下载rpm包2

将rpm包复制到/tmp目录,在两台服务器上安装:

rpm -ivh /tmp/rsync-3.1.2-4.el7.x86_64.rpm
rpm -ivh /tmp/inotify-tools-3.14-9.el7.x86_64.rpm

安装软件

3.3 配置实时同步

在服务器A上创建同步脚本:

vi /home/hik/remote_file_backup.sh

脚本内容:

#!/bin/bash
INOTIFY_CMD="/bin/inotifywait -mrq -e modify,create,attrib,move,delete /opt/opsmgr/backup/"
$INOTIFY_CMD | while read files
do
/bin/rsync -az /opt/opsmgr/backup/ root@10.19.222.135:/home/backup/
done

创建同步脚本

设置开机自启动:

echo "sh /home/hik/remote_file_backup.sh &" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

设置开机自启动

手动启动同步服务:

sh /home/hik/remote_file_backup.sh &

检查进程:

ps -ef|grep inotify |grep -v grep
ps -ef|grep remote_file_backup.sh |grep -v grep

检查进程

3.4 测试同步

在服务器A的 /opt/opsmgr/backup 目录下创建文件:

cp /var/log/audit/audit.log ./

创建测试文件

在服务器B上查看同步结果:

查看同步结果

3.5 配置定时清理

在服务器B上配置定时任务,删除9天前的文件:

crontab -e

添加以下内容:

0 0 * * * find /home/backup/backup -type f -mtime +8 -exec rm {} ;

查看定时任务:

crontab -l

查看定时任务

四、常见问题

问题1:同步失败

  • 检查SSH免密登录
  • 确认rsync和inotify-tools已安装
  • 检查目录权限

问题2:同步延迟

  • 检查inotifywait进程
  • 确认脚本正常运行
  • 检查网络连接

五、注意事项

  • 确保SSH免密登录配置正确
  • 检查目录权限设置
  • 定期检查同步状态
  • 注意磁盘空间使用

六、技术支持

如遇技术问题,请联系:

  • 系统管理员
  • Linux技术支持社区

评论