多台linux执行同一命令

worktile 其他 62

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Linux系统中,可以通过以下几种方法让多个服务器同时执行相同的命令:

    1. 使用ssh命令:ssh(Secure Shell)是远程登录和执行命令的常用工具。可以使用ssh命令连接到一台服务器,并在该服务器上执行命令。如果希望多台服务器同时执行相同的命令,可以使用ssh命令遍历服务器列表,并在每台服务器上执行相同的命令。示例命令如下:

    “`shell
    for server in server1 server2 server3; do
    ssh user@$server “command”
    done
    “`

    在上面的示例中,将服务器列表`server1`、`server2`和`server3`替换为实际的服务器主机名或IP地址,并将`user`替换为具有执行命令权限的用户名,`command`替换为要执行的命令。

    2. 使用pssh命令:pssh(Parallel SSH)是一个用于在多个服务器上并行执行命令的工具。可以使用pssh命令读取一个或多个服务器的列表文件,并在每个服务器上执行相同的命令。示例命令如下:

    “`shell
    pssh -h hosts.txt -l user -i “command”
    “`

    在上面的示例中,`hosts.txt`是一个包含服务器列表的文件。`user`是具有执行命令权限的用户名,`command`是要执行的命令。

    3. 使用ansible工具:Ansible是一种自动化工具,可以用于配置和管理多台服务器。可以使用Ansible编写一个playbook文件,在其中指定要在多台服务器上执行的任务。示例playbook文件如下:

    “`yaml

    – hosts: servers
    remote_user: user
    tasks:
    – name: execute command
    command: “command”
    “`

    在上面的示例中,`servers`是包含服务器列表的主机组名,`user`是具有执行命令权限的用户名,`command`是要执行的命令。然后使用ansible-playbook命令运行playbook文件,即可让多台服务器同时执行相同的命令。

    以上是几种常用的方法,可以根据实际需求选择适合的方式来让多台Linux执行同一命令。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux中,可以通过以下方法实现多台Linux服务器同时执行同一条命令:

    1. SSH批量执行:如果已经配置好了SSH连接,可以使用SSH批量执行命令。可以使用工具如pdsh、pssh或者使用SSH的for循环。例如,使用for循环批量执行命令:
    “`
    for server in server1 server2 server3; do
    ssh user@${server} ‘command’
    done
    “`
    这将在每个服务器中执行相同的命令。

    2. 使用工具如Ansible:Ansible是一个功能强大的自动化工具,可以用于批量管理和配置多台服务器。通过Ansible可以定义一个主机清单文件,然后编写一个playbook来指定在所有主机上执行的命令。
    例如,创建一个名为command.yml的playbook文件,内容如下:
    “`

    – hosts: all
    tasks:
    – name: Execute command
    command: command
    “`
    然后使用ansible-playbook命令来运行playbook:
    “`
    ansible-playbook -i inventory_file command.yml
    “`
    3. 使用分布式作业调度器如Apache Mesos或Kubernetes:这些工具可以管理整个集群,并且可以将任务分配给集群中的多个节点。通过配置和使用这些作业调度器,可以将命令发送到多台Linux服务器并同时执行。

    4. 使用分布式shell工具:一些工具如dsh(Distributed shell)可以在多台Linux服务器上并行执行命令。这样可以一次性将命令发送到多个服务器并收集结果。

    5. 使用分布式命令执行工具:一些工具如ClusterSSH可以同时在多个终端上打开多个SSH会话,这样就可以同时执行命令。只需将要执行的命令输入到一个终端,它会在所有终端上同时执行。

    以上是几种常见的在多台Linux服务器上同时执行同一条命令的方法。根据实际情况选择合适的方法进行操作。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在多台Linux服务器上执行同一命令可以使用SSH(Secure Shell)远程登录工具来实现。SSH是一种加密的网络协议,可以通过安全的通道在不同的计算机之间进行数据通信。

    以下是在多台Linux服务器上执行同一命令的操作流程:

    1. 确保所有的Linux服务器上都已经安装了SSH服务。如果没有安装,可以通过以下命令安装:

    “`
    sudo apt-get install openssh-server # Ubuntu或Debian系统使用该命令安装
    sudo yum install openssh-server # CentOS或RHEL系统使用该命令安装
    “`

    2. 在一个Linux服务器上生成SSH密钥对。这将用于通过SSH进行认证。

    “`
    ssh-keygen
    “`

    按照提示一直按回车键,直到生成密钥对完成。

    3. 在其他的Linux服务器上将这个公钥复制到`authorized_keys`文件中。

    “`
    ssh-copy-id username@server_ip
    “`

    其中,`username`是登录远程服务器的用户名,`server_ip`是远程服务器的IP地址。

    4. 验证是否可以通过SSH连接到其他的Linux服务器。

    “`
    ssh username@server_ip
    “`

    如果成功登录到远程服务器,表示SSH连接设置正确。

    5. 创建一个包含要执行命令的文件。例如,创建一个名为`command.txt`的文件,并将要执行的命令写入其中。

    “`
    touch command.txt
    echo “Command to execute” >> command.txt
    “`

    6. 编写一个脚本来在多台服务器上执行命令。例如,创建一个名为`execute_command.sh`的脚本,并将以下内容添加进去:

    “`bash
    #!/bin/bash

    while read server_ip
    do
    ssh username@$server_ip “bash -s” < command.txt done < server_list.txt ``` `server_list.txt`是一个包含所有要连接的服务器IP地址的文件。7. 赋予`execute_command.sh`脚本执行权限。 ``` chmod +x execute_command.sh ```8. 运行脚本。 ``` ./execute_command.sh ``` 脚本将会在所有的Linux服务器上执行`command.txt`中的命令。通过以上步骤,可以在多台Linux服务器上执行同一命令。这种方式可以节省时间和精力,提高工作效率。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部