Unix 使点文件在计算机间保持同步?

Unix 使点文件在计算机间保持同步?,unix,configuration-files,Unix,Configuration Files,像大多数*nix人一样,我倾向于使用我的工具,并按照我喜欢的方式配置它们。直到最近,一切都很好。当我做越来越多的工作时,我倾向于登录越来越多的机器,并且有越来越多的东西在我的家庭机器上配置得很好,但不一定在我的工作机器上,或者在我的web服务器上,或者在我的任何工作服务器上 如何更新这些配置文件?你只是手动复制它们吗?您是否将它们存储在公共场所?您可以使用rsync。它通过ssh工作,我发现这很有用,因为我只设置具有ssh访问权限的新服务器 或者,创建一个tar文件,在任何地方移动并解压缩。我将

像大多数*nix人一样,我倾向于使用我的工具,并按照我喜欢的方式配置它们。直到最近,一切都很好。当我做越来越多的工作时,我倾向于登录越来越多的机器,并且有越来越多的东西在我的家庭机器上配置得很好,但不一定在我的工作机器上,或者在我的web服务器上,或者在我的任何工作服务器上


如何更新这些配置文件?你只是手动复制它们吗?您是否将它们存储在公共场所?

您可以使用rsync。它通过ssh工作,我发现这很有用,因为我只设置具有ssh访问权限的新服务器


或者,创建一个tar文件,在任何地方移动并解压缩。

我将文件的主版本置于我的主机上的CM控制之下,并在需要的地方安排复制更新。幸运的是,我们在大多数机器上都有用于主目录的NFS挂载,所以我实际上不需要经常复制。另一方面,我的配置文件相当复杂,在不同的机器上提供了不同的路径设置等。粗略地说,与我偶尔使用的没有管理控制的机器相比,我拥有管理控制的机器往往安装了更多的开源软件


因此,我随机混合了手动和半自动流程。

Rsync是您最好的解决方案。示例如下:


我将它们存储在我的版本控制系统中。

在这里,您可以将常用文件放在web服务器上,然后客户端程序在任意数量的客户端计算机上维护点文件。它被设计为在任何级别的客户机上运行,因此shell脚本都是适当的
sh
脚本,并且具有最小的依赖性。

这些天来,我似乎在我看到的每一个地方都发现了一个新的东西,这让我说“嘿,这对于”

我使用svn。。。拥有公共和私有存储库。。。所以一旦我上了服务器我就

svn co http://my.rep/home/public

还有我所有的点文件…

我将我的文件存储在一个
git
存储库中,这样我就可以轻松地合并系统相关的更改,同时也可以共享我想要的更改。

我很幸运地将我的文件保存在一个修订控制系统下。这并不适合所有人,但大多数程序员应该能够体会到它的好处。 阅读

这是一个非常好的描述,包括如何在多台机器上处理非点文件配置(如通过的cron作业)。

我使用git来实现这一点

有一个专门针对该主题的wiki/邮件列表


这里也是Svn。Rsync或unison将是一个好主意,除了有时东西停止工作,我想知道上周我的.bashrc文件中有什么。在这种情况下,Svn是一个救命稻草。

现在我使用它,使我的所有文件在多台机器上保持同步。

根据您的环境,您也可以使用(完全备份的)NFS共享…

关于在公共场合存储点文件,有

但是手动更新文件会非常痛苦,因为(AFAIK)这些服务都不提供任何API


后者非常简单(没有联系方式,没有关于谁制作/拥有它的信息等等)

我也使用subversion来管理我的点文件。当我登录到一个框时,我的确认会自动更新。我还使用github公开存储。我使用git svn使两者保持同步

在新服务器上启动和运行只需运行几个命令。create_links脚本只是将.dotfiles文件夹项目中的符号链接创建到my
$HOME
中,还涉及一些不需要签入的文件

$ cd

# checkout the files
$ svn co https://path/to/my/dotfiles/trunk .dotfiles

# remove any files that might be in the way
$ .dotfiles/create_links.sh unlink

# create the symlinks and other random tasks needed for setup
$ .dotfiles/create_links.sh

我把我所有的点文件放在Dropbox上的一个文件夹中,然后将它们符号链接到每台机器上。在一台机器上所做的更改几乎可以立即提供给所有其他机器。它很管用。

我绝对推荐。它使用git并自动对文件进行符号链接
homesick track
跟踪一个新的点文件,而
homesick符号链接
symlinks将新的点文件从存储库链接到您的主文件夹。这样,您甚至可以拥有多个存储库

是一种便于在git中保存点文件的工具,包括那些带有私人信息的点文件(如.gitconfig)

通过将配置文件保存在git公共git存储库中,您可以与其他人共享您的设置。任何机密信息都保存在存储库外的单个文件中(由您备份和传输此文件)

--

麦卡普

Ira/mackup是一个用于Linux和Mac系统的实用程序,它将使用几乎所有流行的共享存储提供商(dropbox、icloud、google drive)同步应用程序首选项。它的工作原理是用符号链接替换点文件


它还有一个包含数百个受支持的应用程序的大型库

我在这里像Daniel Bungert那样做,事实上,我的点文件repos是公开的,因为我与朋友共享它。我们从彼此身上汲取有趣的技巧:)对于那些感兴趣的人,我很乐意透露我的git web url。这里也是。使用git。在我的主要工作机器上有一个“主”回购。然后,主repo上的一个本地分支用于另一台机器(或仅用于不同的配置)。有一个
master
分支来承载所有家庭中可见的东西。只有极少数特定于机器的变通方法进入特定的分支。不需要脚本。大文件不在我家。项目不在我家。单独的事物/概念进入单独的repos.WTF?为什么建议rsync会得到-1分?又有代表了,WTF?!又一次反对提到rsync。我们有什么,讨厌rsync的人?有时也令人困惑。有一些代表。我喜欢rsync,但这里不太好。假设你有5台机器。使用rsync,您必须指定一个主节点并将其他节点绑定到它。如果你