使用单个命令 SFTP 到多台计算机

使用单个命令 SFTP 到多台计算机

我想要一个 SFTP 命令将一个文件传输到两台机器。是否可以?

答案1

不会。SFTP 命令在单个连接上发生。

这听起来很像您想要一些简单的程序来获取目标计算机列表,并将文件复制到这些计算机或从中复制文件,执行命令,检查状态和成功,一致。

这样的工具还有很多!我通常使用的是安西布尔

本质上,您将编写一个文件,为您的两台机器组提供一个名称。我们称它为inventory.ini

[karthiksmachines]
machine1
machine2

(当然,将machine1和替换machine2为您机器的主机名或 IP 地址)

然后您只需运行以下命令即可测试它是否有效:

ansible -i inventory.ini karthiksmachines -m ping

你应该得到一个很好的输出,表明machine1 | SUCCESS =>…和 相同machine2。 (如果没有,您可能没有正确设置 ssh 访问密钥。)

如果有效的话,那就太好了!现在我们来写一个剧本,即每台机器上要执行的任务的集合。我们称这个文件为playbook.yaml

- name: Maintain the machines of Karthik
  hosts: karthiksmachines
  tasks:
   - name: Copy file over
     ansible.builtin.copy:
       src: /path/to/your/local/file.ext
       dest: /path/where/the/file/should/end/file.ext

正如您所猜测的,您可以向列表中添加更多任务tasks:;通常这些事情包括安装安全更新、下载日志文件或在服务器上设置服务。任何!

然后运行该剧本:

ansible-playbook -i inventory.ini playbook.yaml

所以,就这样了。一旦您将要管理的机器放入一个文件中,并将您希望这些机器执行的指令放入另一个文件中,您就需要运行一个命令:)

我发现这很容易,因此我尝试对所有服务器所做的所有事情都这样做,特别是软件安装、服务配置、用户创建等事情......。
这有一个很大的优点,如果我需要添加另一台服务器,我只需将其添加到清单中并让剧本运行即可。可复制的服务器!

相关内容