linux服务器文件实时同步

这篇具有很好参考价值的文章主要介绍了linux服务器文件实时同步。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

linux服务器文件实时同步

1 背景说明

在做系统集群部署时,涉及到两个或多个服务器之间文件同步.在软件层面linux服务环境找到以下两种同步方式

  • 利用linux NFS功能将网络共享文件挂载成本地目录
  • 采用文件监听,实时推送

服务器资源如下

  • 服务器1 10.2.4.51 ,作为主服务器
  • 服务器2 10.2.4.52 ,作为从服务器

2 NFS网络共享配置

2.1 主服务器

2.1.1 安装应用包
yum install -y nfs-utils rpcbind #nfs安装命令 author: herbert qq:464884492
systemctl enable nfs #将nfs设置开机启动
systemctl enable rpcbind #将rpcbind设置开机启动
2.1.2 共享配置

主服务建立需要共享的文件夹

mkdir /home/nfs_data # 主服务需要共享的目录 

配置从服务可以访问主服务器

vi /etc/exports #author: herbert qq:464884492

设置内容为

/home/nfs_data/ 10.2.4.52(rw,sync,no_root_squash)

重启服务,注意一定要先启动 rpcbind

systemctl stop nfs 
systemctl stop rpcbind
systemctl start rpcbind 
systemctl start nfs
showmount -e # 可以检查NFS配置是否生效
# 配置正确后,会有一下提示信息
Export list for hk51:
/home/nfs_data 10.2.4.52
2.1.3 防火墙配置

如果服务器需要开启防火墙,需要在防火墙添加服务,可以通过firewall-cmd --state 防火墙开启状态

firewall-cmd --add-service=nfs --permanent --zone=public
firewall-cmd --add-service=mountd --permanent --zone=public
firewall-cmd --add-service=rpc-bind --permanent --zone=public
firewall-cmd --reload #重新载入配置,使其生效

2.2 从服务器

2.2.1 应用包安装
yum -y install nfs-utils 
2.2.2 挂载配置

在相同的路径建立同样的目录

mkdir /home/nfs_data # 从服务需要共享的目录

挂载目录

mount -t nfs -o sync,noac 10.2.4.51:/home/nfs_data /home/nfs_data #目录挂载

检查挂载

 df -h #查看挂载

配置开机启动挂载

vi /etc/fstab #追加内容 10.2.4.51:/home/nfs_data /home/nfs_data/ nfs sync,noac 0 0

3 文件实时监听同步

3.1 SSH互信配置

主服务器和从服务分别生成自己的公钥,命令如下

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa  # 生成证书
cd ~/.ssh/ #切换目录
touch authorized_keys #生成认证文件
cat id_rsa.pub >>authorized_keys #复制公钥到认证文件
scp authorized_keys 10.2.4.52:/root/.ssh #远程复制自己公钥到对方服务器
service sshd restart #重启SSH服务

主服务器和从服务器 authorized_keys 文件,保存所有需要免密登录服务器的公钥信息即id_rsa.pub文件中的值

3.2 同步软件安装

主服务器和从服务器同时安装应用包

yum -y install inotify-tools 
yum -y install unison #author: herbert qq:464884492

主服务器从服务器在相同路径建立需要实时共享的目录

mkdir /home/sync_data

3.3 同步脚本编写

主服务器(10.2.4.51)监听同步脚本,文件名 /home/runfilesync.sh

#/bin/bash
dstIp="10.2.4.52"
src="/home/sync_data"
dst="/home/sync_data"
/usr/bin/inotifywait -mrq -e create,delete,modify,move $src | while read line; do
/usr/bin/unison -batch $src ssh://$dstIp/$dst
echo -n "$line " >> /var/log/inotify.log
echo `date | cut -d " " -f1-4` >> /var/log/inotify.log
done   

从服务器(10.2.4.52)监听同步脚本,文件名 /home/runfilesync.sh

#/bin/bash
dstIp="10.2.4.51"
src="/home/sync_data"
dst="/home/sync_data"
/usr/bin/inotifywait -mrq -e create,delete,modify,move $src | while read line; do
/usr/bin/unison -batch $src ssh://$dstIp/$dst
echo -n "$line " >> /var/log/inotify.log
echo `date | cut -d " " -f1-4` >> /var/log/inotify.log
done  

3.4 运行脚本,开机自起

脚本需要后台运行,启动命令如下

nohup sh /home/runfilesync.sh & 
ps -aux | grep runfilesync #检查脚本是否在运行
#设置开机启动 author: herbert qq:464884492
crontab -e #追加内容  @reboot  /home/runfilesync.sh

4 效果测试

  1. 在主服务器 /home/nfs_data 和 /home/sync_data 两个文件夹中分别添加touch 地心侠士.txt,然后ssh到从服务,可以在从服务器这两个文件夹中找到地心侠士.text
  2. 在从服务器 /home/nfs_data 和 /home/sync_data 两个文件夹中分别添加touch 小院不小.txt,然后ssh到主服务,可以在主服务器这两个文件夹中找到小院不小.text

5 总结

通过软件或者协议实现实时同步,以上两种方法各有优劣.采用NFS网络共享协议,必须指定一个网络主节点.采用inotify+unison方式,有点分布式的感觉,无需指定主节点,但同步效果方面和稳定性方面会差一些
文件监听同步软件inotifyunison 安装需要编译环境,安装时比较麻烦.我这里提供了rpm安装包以及对应依赖包(安装命令rpm -ivh xxx.rpm).如果需要请关注公众号[小院不小],回复sync获取下载连接,或者添加QQ:464884492,获取
linux服务器文件实时同步
闲暇之余,做了一款有趣耐玩的消除类微信小游戏地心侠士,有兴趣可到微信搜索地心侠士玩玩,感谢支持文章来源地址https://www.toymoban.com/news/detail-837765.html

到了这里,关于linux服务器文件实时同步的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 本地clion开发/优雅地调试,并实时同步远程服务器

    实现本地Clion写项目,远程连接Ubuntu服务器,并将本地所做的修改实时同步到Ubuntu上 一、Ubuntu服务器 开启sshd服务 安装工具链,g++,gcc,make,cmake,gdb,(apt install安装的版本不符,就去搜其他方式安装适合的版本) 二、本地Win10 参考windows clion安装 配置Ubuntu服务器: 文件

    2024年02月04日
    浏览(45)
  • 如何在Linux机器上使用ssh远程连接Windows Server服务器并使用rsync同步文件

       当前在研究goploy自动化开源部署工具,该工具部署在linux机器上,而要部署服务的目标服务器有一部分是windows server服务器,goploy自动化部署,使用rsync部署方式,底层依赖于ssh远程连接目标服务器,所以,要实现自动化部署,必须先实现ssh远程连接目标windows server服务器

    2024年02月05日
    浏览(71)
  • Linux服务器同步Windows目录同步-rsync

    最近需要,Linux的服务器同步Windows的一个目录。查了下,大概有三种方法:网盘同步;rsync同步;挂载目录。 网盘同步,可以选择搭建一个Nextcloud 。但是问题在于,我需要的是,客户端和服务端的同步,而不是客户端和客户端的同步。服务端没有界面,安装客户端的网盘软件

    2024年02月11日
    浏览(62)
  • 文件同步工具 - 本地搭建免费开源的Syncthing自动文件同步服务器【远程访问】

    📱iOS学霸主页 在强者的眼中,没有最好,只有更好。我们是移动开发领域的优质创作者,同时也是阿里云专家博主。 ✨ 关注我们的主页,探索iOS开发的无限可能! 🔥我们与您分享最新的技术洞察和实战经验,助您在移动应用开发领域取得成功。 📌欢迎访问我们的微信公

    2024年02月13日
    浏览(50)
  • linux两台服务器时间同步

    让Linux两台服务器时间同步,可以通过网络时间协议(NTP)来实现。NTP是一种可以在网络时间服务器和客户端之间同步时间的协议,通过使用NTP,可以保证网络中的所有计算机时间的准确性。 在服务器1上安装NTP服务: 编辑ntp配置文件/etc/ntp.conf,将server字段改为服务器1的IP地

    2024年02月09日
    浏览(47)
  • pycharm 连接服务器同步文件并运行

    配置环境:pycharm专业版 学生可以免费 首先选择deployment- configuration connection里连接远程服务器,mapping里面连接文件同步位置 deployment path是文件同步位置,此时前面文件后缀已经在connection里面的root path,不需要重复。 首先需要配置python interpreter,在pycharm右下角 点加号 on 

    2024年03月18日
    浏览(63)
  • Windows→Linux,本地同步到服务器

    本地-远程,增删改移全自动,不限文件/夹文件。注意是 本地到远程 单向,反之 远程-本地 无法自动同步,需要手动download到本地。 当然远程文件都是只读的,你肯定是操作本地文件的,除了远程代码生成的新文件,这里是唯一需要手动download到本地的。 配置文件会生成在项

    2024年03月25日
    浏览(53)
  • phpstorm配置ftp同步文件到服务器

    这里的默认快捷键 不是 Ctrl+S ;需要设置快捷键,这里原来是save all操作时上传文件到服务器; ** ** 搜索出save all 后,双击它,弹出设置面板,然后按 Ctrl+S获取按键,最后点击OK

    2024年02月13日
    浏览(54)
  • 如何使用Synology Drive作为文件同步服务器实现云同步Obsidian笔记

    ​ 上期教程介绍了如何免费多端同步Zotero科研文献管理软件,我在文章中分享了 群晖Nas虚拟机安装包 ,使用群晖的 WebDav 功能实现多端云同步,本期将演示使用 群晖Synology Drive 实现同步笔记文件。 ​ 当我们使用 Zotero 阅读文献并画出重点后( 输入 ),需要一款多功能的笔

    2024年01月19日
    浏览(81)
  • Linux服务器与群晖rsync同步,linux服务器通过rsync的方式备份数据到群晖

    准备需要备份linux服务器的配置,安装rsync即可 1.登录群晖服务器,点击套件中心  2.点击红色框框,跳转到套件界面 3.点击Active Backup for Business 4.点击文件服务器-添加服务器-选择rsync服务器-下一步 5.填写远程服务器信息 6.在群晖系统上创建备份任务 打开群晖的Active Backup fo

    2024年02月10日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包