linux两台服务器之间文件做同步

文章目录

概要

实现两台 Linux 服务器之间的文件同步,确保两台服务器上的文件保持一致。

一.使用到的包

1.使用到的包

1.unison-2.32.52-1.el6.rf.x86_64.rpm

2.inotify-tools-3.13-1.el6.rf.x86_64.rpm

2.下载地址:

bash 复制代码
https://download.csdn.net/download/yini123321/13054010

3.安装包

bash 复制代码
1.unison安装
rpm -ivh unison-2.32.52-1.el6.rf.x86_64.rpm

2.inotify
rpm -ivh inotify-tools-3.13-1.el6.rf.x86_64.rpm

4.验证安装是否成功
1.unison(任意一种都可以)

bash 复制代码
1.which unison

2.unison -version

3.rpm -qa | grep unison

2.inotify(任意一种都可以)

bash 复制代码
1.rpm -qa | grep inotify-tools

2.which inotifywait

3.inotifywait --version

二.服务器做免密登录

1.在服务器上执行如下命令(如果是以普通用户做免密切换到普通用户执行)

bash 复制代码
ssh-keygen -t rsa
bash 复制代码
一直回车
bash 复制代码
cd /home/test/.ssh

> 在以上目录下会生成两个文件
id_rsa
id_rsa.pub

2.需要登录的服务器

bash 复制代码
1.切换到普通用户
cd /home/test/.ssh
bash 复制代码
2.写入
cat id_rsa.pub >authorized_keys

3.测试登录

bash 复制代码
ssh 127.0.0.1(这你服务器的IP)

三. 同步脚本

1.创建shell脚本(rsync.sh

bash 复制代码
#!/bin/bash
IP=目标IP
src=/data
dst=/data
/usr/bin/inotifywait -mrq -e create,delete,modify,move,attrib,close_write $src | while read line; do /usr/bin/unison  -batch ${src} ssh://${IP}/${dst}
echo -n "$line " >> /var/log/inotify/inotify$(date +%u).log
echo `date | cut -d " " -f1-4` >> /var/log/inotify/inotify$(date +%u).log
done

2.授权

bash 复制代码
chmod -R 755 rsync.sh

四.定时任务执行

bash 复制代码
1.编辑定时任务
crontab -e
* * * * * /home/test/rsync.sh > /dev/null 2>&1 &
2.查看定时任务
crontab -l

* * * * * /home/test/rsync.sh > /dev/null 2>&1 &

小结

` 以上只是做了源同步到目标服务器,同样的目标同步到源,可以在目标服务器上做同样的操作即可,

相关推荐
zmjjdank1ng7 分钟前
Linux 流编辑器 sed 详解
linux·运维·前端·网络·入门
AI风老师23 分钟前
7、docker |其余命令
linux·ubuntu·docker
Zenexus25 分钟前
VSCODE+GDB+QEMU调试内核
linux·vscode·qemu·gdb
鹧鸪云光伏1 小时前
[鹧鸪云]光伏AI设计平台解锁电站开发新范式
运维·服务器·人工智能·光伏·光伏设计
云和数据.ChenGuang2 小时前
Raft协议 一种专为分布式系统设计的共识算法
运维·服务器·算法·区块链·共识算法
HelloGitHub2 小时前
微软开源的 MCP 教程「GitHub 热点速览」
开源·github
掘金安东尼2 小时前
🌍海外前端动态情报源清单(持续更新)
前端·面试·github
若水晴空初如梦2 小时前
QT聊天项目DAY18
运维·服务器
楼田莉子2 小时前
(3万字详解)Linux系统学习:深入了解Linux系统开发工具
linux·服务器·笔记·git·学习·vim
long3162 小时前
使用docker compose 部署dockge
运维·docker·容器