当前位置: 首页 > 帮助中心

linux命令ssh如何批量管理主机

时间:2026-01-31 10:05:18

在Linux中,可以使用SSH客户端(如OpenSSH)批量管理多台主机

    创建一个包含所有主机的文本文件:首先,创建一个名为hosts.txt的文本文件,其中列出了所有要管理的主机及其IP地址或主机名。每行一个主机,如下所示:

    192.168.1.100192.168.1.101192.168.1.102

    使用SSH循环遍历主机列表:接下来,使用ssh命令结合循环结构(如for循环)遍历hosts.txt中的每个主机,并执行相应的操作。例如,要将所有主机的防火墙设置为关闭状态,可以使用以下命令:

    while IFS= read -r host; dossh "$host" "sudo systemctl stop firewalld"done < hosts.txt

    如果需要在每个主机上执行多个命令,可以将它们连接在一起,如下所示:

    while IFS= read -r host; dossh "$host" "sudo systemctl stop firewalld; sudo systemctl disable firewalld"done < hosts.txt

    使用SSH密钥进行无密码登录:为了避免在每个主机上输入密码,可以使用SSH密钥对进行无密码登录。首先,为每个主机生成一个SSH密钥对(如果尚未生成):

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

    然后,将公钥复制到每个主机的~/.ssh/authorized_keys文件中:

    for host in $(cat hosts.txt); dossh-copy-id -i ~/.ssh/id_rsa.pub "$host"done

    现在,你应该能够使用SSH无密码登录到所有主机并执行命令。

    使用Ansible自动化批量管理:对于更复杂的批量管理任务,可以使用Ansible等自动化工具。Ansible是一个强大的自动化工具,可以简化远程主机的管理任务。首先,安装Ansible:

    sudo apt-get install ansible

    然后,创建一个名为playbook.yml的Ansible剧本文件,其中定义了要执行的任务:

    ---- name: Manage hostshosts: alltasks:- name: Stop firewalldcommand: sudo systemctl stop firewalld- name: Disable firewalldcommand: sudo systemctl disable firewalld

    最后,运行Ansible剧本以应用更改:

    ansible-playbook playbook.yml

通过这些方法,你可以批量管理多台主机,从而提高工作效率。


上一篇:在多用户linux系统下怎么卸载openssl
下一篇:为何要在linux下卸载openssl
Linux
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素