如何在网络中的多个系统之间分发文件?

如何在网络中的多个系统之间分发文件?

我的网络中有 60 多个 ubuntu 系统。我想将文件从一个系统复制到其他 ubuntu 系统。所有 IP 地址都列在一个文本文件中。

那么我可以使用什么命令来完成任务?有 Bash 程序吗?

答案1

假设您的 IP 地址放在名为 ips.txt 的文件中,每个 IP 占一行。创建一个名为 *scp_all.sh* 的文件,并将以下文本复制到其中:

#!/bin/bash

while read LINE ; do
    scp $1 root@$LINE:$1
done < ips.txt

然后按如下方式执行:

./scp_all.sh /home/yaroo/Desktop/1.jpg

这是一个非常简单的脚本,它假设你在所有计算机上的用户名都是 root,它不存储密码,你每次都必须输入密码,并且它没有任何异常处理程序。如果你想更改目标地址,请更改第二个1 美元在 scp 命令中使用 $2 并按如下方式使用脚本:

./scp_all.sh /home/yaroo/Desktop/1.jpg /home/yaroo/Downloads/just_copied.jpg

我说过你必须为每台电脑输入密码,但如果你决定定期使用此脚本,你可以通过下面描述的简单的 6 步解决方案来解决这个问题这里。 祝你好运 ;-)

答案2

Lekensteyn 是正确的——您应该从服务器中提取文件,而不是将它们从服务器推送到客户端。

如果你要定期执行此操作(尤其是处理大量文件),我会设置同步版本控制系统例如git,而不是 FTP,这样客户端只需要下载发生变化的内容。

答案3

(从之前的评论升级)您可能还需要研究一下配置管理系统,例如木偶BCGF2, 或者厨师管理通过网络分发文件。

相关内容