如何利用pssh在Linux上批量执行命令

avatar
作者
猴君
阅读量:0

pssh(Parallel SSH)是一个用于在多台远程Linux服务器上并行执行命令的工具

  1. 安装pssh

    对于Debian/Ubuntu系统,使用以下命令安装:

    sudo apt-get install pssh 

    对于RHEL/CentOS系统,使用以下命令安装:

    sudo yum install pssh 
  2. 创建一个包含目标服务器列表的文件。每个服务器一行,格式为[user@]host[:port]。例如,创建一个名为servers.txt的文件,内容如下:

    user1@server1.example.com user2@server2.example.com:2222 server3.example.com 
  3. 使用pssh执行命令。以下是一些常用的pssh选项:

    • -h:指定包含服务器列表的文件。
    • -l:指定SSH登录用户名(如果未在服务器列表文件中指定)。
    • -p:设置并行进程数(默认为32)。
    • -t:设置SSH连接超时(以秒为单位,默认为0)。
    • -o:指定输出文件目录。
    • -e:指定错误输出文件目录。
    • -A:启用密码认证(不推荐,因为安全性较低)。
    • -i:忽略错误(继续执行其他服务器上的命令)。
    • -O:设置SSH选项(例如,禁用HostKey检查:-O StrictHostKeyChecking=no)。

    示例命令:

    pssh -h servers.txt -l myuser -p 10 -t 60 "df -h" 

    这将在servers.txt中列出的服务器上并行执行df -h命令,使用myuser作为SSH登录用户名,最多有10个并行进程,SSH连接超时为60秒。

注意:为了避免在执行命令时输入密码,建议使用SSH密钥对进行身份验证。在所有目标服务器上将公钥添加到~/.ssh/authorized_keys文件中,并确保私钥在本地可用。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!