linux控制多台设备运行命令

worktile 其他 119

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux中,要同时控制多台设备运行命令,可以使用以下几种方法:

    1. 使用ssh命令:ssh命令是远程登录到其他Linux设备的常用工具。通过ssh命令,你可以在本地主机上执行命令,并将命令发送到远程设备。例如,要同时向两台远程设备发送命令,可以使用以下命令:
    “`
    ssh user@device1 ‘command’ &
    ssh user@device2 ‘command’ &
    “`
    这样会在后台同时运行两个ssh命令,并在每台设备上执行指定的命令。

    2. 使用Parallel-SSH:Parallel-SSH是一个基于Python的工具,可以在多个设备上同时执行命令。要使用Parallel-SSH,首先需要安装它,然后按照以下步骤操作:
    – 创建一个包含所有设备IP地址的文本文件,每行一个IP地址。
    – 使用parallel-ssh命令执行命令,例如:
    “`
    parallel-ssh -h -l -P -i ‘command’
    “`
    这将在devices.txt文件中列出的所有设备上并行执行命令。

    3. 使用Ansible:Ansible是一个自动化工具,可以用于配置和管理多个设备。Ansible使用简单的yaml文件定义配置和任务,并使用SSH协议远程连接到设备。要使用Ansible控制多台设备运行命令,首先需要安装Ansible,然后创建一个playbook来定义要执行的任务。例如,下面是一个简单的playbook示例:
    “`
    – hosts: all
    tasks:
    – name: run command on devices
    command:
    “`
    然后,可以使用以下命令运行playbook:
    “`
    ansible-playbook -i “`
    这将在inventory_file指定的设备上运行playbook中定义的任务。

    无论使用哪种方法,都可以方便地控制多台设备同时运行命令。选择适合自己需求和技术水平的方法,即可轻松管理多台设备。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    Linux系统可以使用一些工具和命令来控制多台设备同时执行命令。以下是一些常用的方法:

    1. SSH(Secure Shell):SSH是一种远程登录协议,可以通过在终端上输入命令来远程控制其他设备。可以使用ssh命令来连接到其他设备,并在其中执行命令。例如,要在多台设备上运行命令,可以编写一个脚本,其中包含ssh命令,用于连接到每台设备,并在每台设备上执行相同的命令。

    2. Ansible:Ansible是一种自动化工具,它可以通过SSH登录到多台设备并执行任务。使用Ansible,可以在一个中央控制节点上定义任务和主机清单,然后使用ansible命令来执行任务。Ansible可以同时执行多个任务,并且可以通过参数指定要执行任务的设备列表。

    3. PDsh:PDsh是一种并行shell工具,可以同时在多台设备上执行命令。它使用SSH协议连接到每个设备,并在每个设备上打开一个shell。然后,您可以在一个终端上输入命令,并将其并行发送到所有设备上执行。PDsh还可以使用批处理模式从文件中读取命令。

    4. ClusterSSH:ClusterSSH是一种用于同时在多台设备上执行命令的工具。它提供了一个图形界面,可以连接到多个设备,并将用户的输入发送到所有设备上。这使得可以在一个终端上同时查看和操作多个设备。ClusterSSH还可以使用命令行界面。

    5. GNU Parallel:GNU Parallel是一种用于在多台设备上并行执行命令的工具。它可以从文件或命令行读取命令,并使用SSH连接到每个设备。GNU Parallel采用管道方式连接每个设备的输入和输出,以实现并行执行。可以使用参数指定要执行命令的设备列表。

    这些方法都可以在Linux系统上控制多台设备同时执行命令。根据不同的需求和偏好,选择适合自己的方法来实现批量控制设备。

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

    在Linux系统中,可以使用一些工具和命令来控制多台设备同时运行命令。下面将介绍一种常用的方法,即使用SSH和ParallelSSH来实现。

    1. 安装SSH:
    SSH是一种远程登录协议,通过SSH可以在多台设备之间建立安全的连接,并执行远程命令。在控制设备之前,首先需要在每台设备上安装和配置SSH。

    在Debian/Ubuntu系统上,可以使用以下命令安装SSH:
    “`
    sudo apt-get install openssh-server
    “`

    在CentOS/RHEL系统上,可以使用以下命令安装SSH:
    “`
    sudo yum install openssh-server
    “`

    2. 配置SSH:
    默认情况下,SSH使用用户名和密码进行身份验证。为了简化控制过程,可以设置SSH免密码登录,这样就可以在多台设备之间无需手动输入密码来建立连接。

    首先,在控制设备上生成SSH密钥对。使用以下命令生成密钥对(如果已经有密钥对,则可以跳过此步骤):
    “`
    ssh-keygen
    “`

    按照提示,选择默认的存储位置和密码,或者不设置密码。

    然后,将公钥拷贝到要控制的设备上。使用以下命令将公钥拷贝到另一台设备上(假设远程设备的IP地址为192.168.0.2):
    “`
    ssh-copy-id username@192.168.0.2
    “`

    输入远程设备的密码,将公钥拷贝到远程设备上。

    最后,测试是否可以通过SSH免密登录到远程设备。使用以下命令登录到远程设备(IP地址为192.168.0.2):
    “`
    ssh username@192.168.0.2
    “`

    如果成功登录到远程设备,就说明SSH配置成功。

    3. 安装ParallelSSH:
    ParallelSSH是一个基于Python的工具,它可以并行地在多台设备上执行命令。使用以下命令来安装ParallelSSH:
    “`
    pip install parallel-ssh
    “`

    4. 编写脚本:
    编写一个Python脚本来控制多台设备运行命令。下面是一个简单的示例脚本:

    “`python
    from getpass import getpass
    import parallelssh

    # 获取要执行命令的设备列表
    devices = [
    ‘192.168.0.2’,
    ‘192.168.0.3’,
    ‘192.168.0.4’
    ]

    # 获取要执行的命令
    command = getpass(‘Enter the command to run on devices: ‘)

    # 获取SSH用户名和密码
    username = getpass(‘Enter SSH username: ‘)
    password = getpass(‘Enter SSH password: ‘)

    # 创建ParallelSSH对象
    executor = parallelssh.ParallelSSH(devices, user=username, password=password)

    # 执行命令并获取结果
    output = executor.run(command)

    # 打印命令输出
    for device, output in output.items():
    print(f’RESULTS for device: {device}’)
    for line in output.stdout:
    print(line)
    print(‘-‘ * 50)
    “`

    在上面的示例中,首先获取要执行命令的设备列表,并通过getpass函数获取SSH用户名和密码。然后创建ParallelSSH对象,并使用run函数在设备上执行命令。最后打印命令输出结果。

    5. 运行脚本:
    保存脚本为一个Python文件,例如`run_command.py`。然后在终端中运行脚本:
    “`
    python run_command.py
    “`

    按照提示输入要执行的命令、SSH用户名和密码。脚本会自动连接到每台设备上,执行命令,并打印输出结果。

    通过上述方法,可以方便地控制多台设备运行命令,在管理和维护大量设备时非常有用。

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

400-800-1024

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

分享本页
返回顶部