从许多机器收集文件?

时间:2011-02-21 20:56:38

标签: linux file networking rsync nfs

我在网络中连接了许多机器(20+)。每台机器访问一个中央数据库,查询它,处理查询的信息,然后将结果写入其本地硬盘上的文件。

在处理之后,我希望能够将所有这些文件(从所有远程机器)“抓取”回主机进行存储。

我想到了三种可能的方法:

(1)从主机到每台远程机器的rsync,并“询问”文件

(2)从每台远程机器到主机的rsync,并“发送”文件

(3)在每台远程机器上创建一个NFS共享,主机可以访问并读取文件(在这种情况下不需要'rsync')

其中一种方式比其他方式更好吗?有更好的方法我不知道吗?

所有机器都使用Ubuntu 10.04LTS。提前感谢任何建议。

3 个答案:

答案 0 :(得分:1)

您可以在主计算机上创建一个 NFS共享,并让每台远程计算机挂载该共享。似乎工作量减少了。

答案 1 :(得分:1)

在性能方面,它实际上是相同的。您仍在通过(相对)慢速网络连接发送文件。

现在,我想说你采取哪种方法取决于你想要处理错误或违规行为的位置。如果您想要负责处理计算机,请将rsync用于主计算机;或者反过来说,如果你想让主要工作人员组装数据并确保一切都井然有序。

至于共享空间方法,我会在主机上创建共享,并让其他人写入。它们可以在处理完成后立即启动,确保文件正确传输,然后验证校验和或其他任何内容。

答案 2 :(得分:1)

我更喜欢选项(2),因为您知道客户端计算机上的处理何时完成。您可以在所有客户端计算机上使用相同的SSH密钥,或者在主计算机上的authorized_keys文件中收集不同的密钥。如果主机由于某种原因不可用,它也更可靠,您可以在NFS设置中稍后同步结果,客户端被阻止。