加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 将多个客户端的主目录同步到服务器

发布时间:2020-12-15 22:20:39 所属栏目:安全 来源:网络整理
导读:我正在使用多台 Linux笔记本电脑/台式机,并希望它们“共享”主目录. 遗憾的是,NFS不是一种选择.因此我试图使用rsync创建一个bash脚本,但我无法弄清楚如何做到这一点. 这是我现在的例子 `#`!/bin/bashsync() { rsync -azvR --exclude-from=/home/ME/.rsync_ex
我正在使用多台 Linux笔记本电脑/台式机,并希望它们“共享”主目录.

遗憾的是,NFS不是一种选择.因此我试图使用rsync创建一个bash脚本,但我无法弄清楚如何做到这一点.

这是我现在的例子

`#`!/bin/bash

sync() {
  rsync -azvR --exclude-from=/home/ME/.rsync_excludes --delete -e 'ssh -ax' $1 $2
}

sync /home/ME server.domain:/home/ME
`#`sync server.domain:/home/ME /home/ME

我认为如果我只使用一台更新服务器文件的客户端机器,这将会很有用.正确?

如果我在一个客户端删除文件怎么办?想要在另一个客户端上删除该文件(在同步原因之后)?

我可以为此目的使用rsync吗?我应该寻找其他计划吗?希望不是……

编辑:由于这个解决方案不应该只对我来说,如果解决方案是自动的,我将不胜感激.

编辑2:也许必须有一个包括回购的解决方案. Subversion,Git,Mercurial或其他.

解决方法

rsync可以使一个位置与主服务器保持同步.或者换句话说,镜像A到B.但这不是你正在做的事情.你必须将A到B和B同步到A.这带来了一系列全新的问题.如果文件消失,您是否需要在另一侧删除或rsync回来?也许它在另一边被修改了;你不能检查.

无论如何;这个问题的解决方案以unison的形式出现.这是一个工具(适用于Linux,OS X,Windows,BSD,…)(具有CLI工具,GUI工具,并且可以在cron中很好地安排),这将保持您的主目录或任何其他目录很好地同步,并使其能够处理几乎任何类型的冲突或问题.那些人认为这比我们在这里做得更好.

或者,有SCM.许多人使用SCM来管理他们的主目录. Subversion很受欢迎,但我根本不推荐它.它不仅会占用大量空间,还会使所有内容变得非常缓慢,并根据与主存储库的活动连接强制保持同步.还有像GIT这样的替代品,但它们都有其缺点.

无论哪种方式,任何基于SCM的解决方案都违反了SCM的一个非常重要的规则:您永远不应该在那里保留大的二进制数据. SCM不是为此而制造的.您不会在SCM中保留您的照片集,电影,文档,下载和类似内容,即使您可能希望保持它们同步或保留它们的历史记录(特别是对于图片/文档).

重要的是要了解保持备份和保持同步之间存在差异.您的备份应保存在远程/分离位置,并且可以包含您拥有的所有内容的历史记录.我个人推荐rdiff-backup.它保存了所有内容的历史,使用底层的rsync算法来最小化流量并访问备份位置看起来像备份的最新状态:您可以像浏览普通文件一样浏览它.

总而言之,我建议您将unison和rdiff-backup结合使用,以实现全面的解决方案,确保您的数据安全可靠地保持同步.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读