想把上线 linux 用于生产的服务器的某个文件夹 与 本地公司部门服务器也是 linux 的进行实时同步,有什么办法?
- 0次
- 2021-07-04 23:10:24
- idczone
目的是这样的,在本地公司做一个 100% 与服务器同样的环境,进行模拟调试或备份,因此最好能实现与生产服务器同时备份(就是源服务器多了什么文件本地立刻就开始同步),就算不能实时同步,否做个 cron 命令每天晚上进行文件夹同步。其它文件夹都好说,关键是图片目录, discuz 的图片目录那如繁星般的文件如果用差一点的 ftp 软件光 list 都会死机的。。。
不知道各位有没有什么办法, 两边环境都是 linux
rsync 定时同步试过吗
btsync?
回楼上两位,我就是第一次试这样的备份方式,什么 sync 都没试过,以前 windows 和文件还少的时候时候 flashfxp 的文件夹同步功能。 linux 下和那么多子文件真不知道应该怎么办
cron+rsync
没什么大不了的
可以用 lsyncd 不需要 cron
我之前写的一个配置方法 http://gunner.me/archives/199
不是有 git hooks 么,你们公司不用版本控制么
你只需要知道 linux 有 inode ,用 libuv 或者 nodejs 干这个应该简单得不能再简单了
DRDB 或者 lsyncd
drdb 是块同步,应该比基于文件比较的要快,但我只在内网环境下用过。
Rsync 的时候,如果文件改变,会失败
lsyncd +1
试过分布式文件系统没有呢,曾经也有这样的需求,最后是在两地架设一个分布式文件系统,文件夹同步。任意一端的修改就会同步到另外一端。
linux 不太熟,我记得 windows server 自身都有这样的功能
分布式文件系统,那得把当前存储的东西迁移到新创建的分布式文件系统上。 windows 的 DFS 也有延迟的,看文件大小和网络速度。因为要通过公网,那么 vpn 把两头 连起来也是必要的了。
DRBD 是网络 RAID ,对网络品质要求蛮高的,同一个局域网下还不错,且从机的 drbd 数据盘是不可以被挂载的,只能用于离线备份。
你想说的是 inotify 吧
自己稍微 baidu 或者 google 一下又不会怀孕……非要浪费我 5 个铜币
https://zh.wikipedia.org/zh/Inode
inode 是指在许多“类 Unix 文件系统”中的一种数据结构。每个 inode 保存了文件系统中的一个文件系统对象(包括文件、目录、设备文件、 socket 、管道, 等等)的元信息数据,但不包括数据内容或者文件名[1]。
我错了,确实是 inotify 。 你说的是我想说的那个东西的正确名字。
nodejs 封装了 inotify
rysnc+inotify
写过 python 的脚本。
一般模式
rysnc+inotify
网络好就上
分布式文件系统
一般 linux 都自带有 rsync ,为什么不用呢,一命令就完成同步,
Syncthing
rsync 毫无压力啊。我们论坛 Discuz 附件 20 多万个文件同步起来飞快的。
具体是怎么做的?还望赐教 。我指具体的命令
比如说生产服务器位于 a.b.c.d ,文件位于 /var/www/bbs/;
本地测试用服务器位于 r.s.t.u ,文件也位于 /var/www/bbs/。
现在你站在本地服务器上,那么可以用 rsync a.b.c.d:/var/www/bbs /var/www -a 来从生产机上拉数据。
反过来,如果你站在生产服务器上,那么可以用 rsync /var/www/bbs r.s.t.u:/var/www -a 来向本地机器推送数据。
如果从外往内推数据的话,需要你这边能从公网访问。
上面说的 inotify 实时推送,就是生产服务器上每次拿到文件新增的消息以后,把路径填进 rsync 的命令行里,实时同步传送。
如果对实时性要求不高的话,定时推送我觉得是足够了。
非常感谢你那么耐心的回答,想问下定时推送是设定 cron 每天做一次吗?能否把这个命令行也告诉我?再次感谢
像论坛的现在没那么多人了,估计就设定每天半夜 3 点跑一次同步应该就好了
哎呀我去……这不是说 ipfs 呢么
你可以搜索一下 crontab 的编辑方法。
只要一次同步成功以后,把相同的命令写进 crontab 的命令区就行了。
无密码登录可以搜索 SSH 密钥登录。
好的我先试试
感觉太麻烦了, btsync 我觉得是最简单的。
本地的机器和服务器同步,然后本地设置成不能删除的模式。
可以试试开源的 syncthing ,记得在服务器上设置为 master 模式
what ?
ipfs p2p file share. 可以订阅节点。互相同步数据。