两台linux服务器实现文件同步(rsync+inotify)

两台linux服务器实现文件同步

实现主服务器上的/home/yy/test目录的文件和备份服务器上的/home/uu/test目录实时同步

主服务器配置

1.下载rsync
mkdir /home/yy
cd /home/yy
wget https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz
tar -zxvf rsync-3.1.2.tar.gz
2.安装gcc
yum -y install gcc
3.安装rsync
cd rsync-3.1.2/
./configure
make
make install
5.设置免密同步

使用SSH免密操作,生成公钥和私钥

ssh-keygen -t rsa -P ""

把生成的公钥发送给备份主机

ssh-copy-id root@192.168.107.131
4.安装inotify-tools
cd ..
wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
tar zxvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14/
./configure
make & make install

检查/usr/local/bin/目录下是否新增两个文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PR6Q4Kpg-1666170145738)(C:\Users\yy\AppData\Roaming\Typora\typora-user-images\image-20221019154902769.png)]

5.编写inotify.sh脚本文件
cd /home/yy
touch inotify.sh
vim inotify.sh
/usr/local/bin/inotifywait -mrq -e modify,delete,create,attrib,move /home/yy/test/ |while read events
do
        rsync -av --delete /home/yy/test/ root@192.168.107.131:/home/uu/test/
        echo "`date +%F\ %T`出现事件$events" >> /var/log/rsync.log 2>&1
done
6.添加可执行权限并执行

inotify.sh脚本文件添加可执行权限

chmod +x inotify.sh
./inotify.sh &

备份服务器配置

1.下载rsync
cd /home/yy
wget https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz
tar -zxvf rsync-3.1.2.tar.gz
2.安装gcc
yum -y install gcc
3.安装rsync
./configure
make
make install
4.启动rsyncd服务
systemctl start rsyncd

监听端口号

netstat -tnlp | grep rsync
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现实时同步,可以结合使用rsyncinotify工具。 首先,使用rsync命令进行初始的文件同步。你可以使用如下命令: ``` rsync -avz --delete source_directory/ destination_directory/ ``` 这将同步源目录(source_directory)中的文件到目标目录(destination_directory)。-a`选项表示使用归档模式,保持文件属性和权限不变。`-v`选项表示输出详细的同步信息。`-z`选项表示启用压缩来加快传输速度。`--delete`选项表示删除目标目录中不存在于源目录中的文件。 接下来,你可以使用inotify工具监控源目录的文件变化,并在有变更时自动触发rsync命令进行实时同步inotifyLinux内核提供的一种机制,可以监视文件系统中的事件,如文件或目录的创建、修改、删除等。 你可以使用inotifywait命令来监控文件系统事件,并在事件发生时执行rsync命令。以下是一个示例: ``` #!/bin/bash SOURCE_DIR="/path/to/source_directory" DESTINATION_DIR="/path/to/destination_directory" inotifywait -m -r -e modify,create,delete,move "$SOURCE_DIR" | while read path action file; do rsync -avz --delete "$SOURCE_DIR/" "$DESTINATION_DIR/" done ``` 上述脚本监视源目录中的修改、创建、删除和移动事件,并在事件发生时执行rsync命令进行同步。你可以将脚本保存为一个.sh文件,并使用`chmod +x script.sh`命令赋予执行权限。 这样,当源目录中的文件发生变化时,inotify会捕捉到事件并触发rsync命令进行实时同步到目标目录。 请注意,以上示例仅为演示目的,并没有考虑到错误处理、日志记录等方面。在实际应用中,你可能需要对脚本进行适当的修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值