pssh参数及例子

参数:
# pssh
Usage: pssh [OPTIONS] -h hosts.txt prog [arg0] ..

 -h --hosts   hosts file (each line "host[:port] [user]")
 -l --user    username (OPTIONAL)
 -p --par     max number of parallel threads (OPTIONAL)
 -o --outdir  output directory for stdout files (OPTIONAL)
 -t --timeout timeout in seconds to do ssh to a host (OPTIONAL)
 -v --verbose turn on warning and diagnostic messages (OPTIONAL)
 -O --options SSH options (OPTIONAL)

Example: pssh -h ips.txt -l irb2 -o /tmp/foo uptime
例子:
以下示例使用login irb2在文件ips.txt中指定的三台计算机(IP或主机名)上运行主机名,并将输出保存在/ tmp / foo中。
# cat ips.txt
128.112.152.122
18.31.0.190
128.232.103.201

# pssh -h ips.txt -l irb2 -o /tmp/foo hostname
Success on 128.112.152.122:22
Success on 18.31.0.190:22
Success on 128.232.103.201:22

# ls /tmp/foo
128.112.152.122 128.232.103.201 18.31.0.190

# cat /tmp/foo/*
planetlab-1.cs.princeton.edu
planetlab1.xeno.cl.cam.ac.uk
planetlab1.lcs.mit.edu
默认情况下,pssh与ssh平行使用最多32个ssh进程到各个节点。 (这对于控制数百台或几千台机器来说有些重要。)默认情况下,它还使用一秒钟的时间到ssh到一个节点,并获得一个结果。 对于比这更长的ssh命令(例如睡眠61),可以使用-t选项。 请注意,pssh和pnuke的默认超时时间为1分钟。 pscp和prsync没有默认超时,但可以使用-t选项指定一个。

环境变量:
PSSH_HOSTS
PSSH_USER
PSSH_PAR
PSSH_OUTDIR
PSSH_VERBOSE
PSSH_OPTIONS

以下是一些实例设置:
#export PSSH_HOSTS=”/x/bnc/ips.txt”
# export PSSH_USER=”irb2”
# export PSSH_PAR=”32”
# export PSSH_OUTDIR=”/tmp/bar”
# export PSSH_VERBOSE=”0”
# export PSSH_OPTIONS=”UserKnownHostsFile /tmp/known_hosts”

使用上述设置,可以简单执行示例:
# pssh hostname
Success on 128.112.152.122:22
Success on 18.31.0.190:22
Success on 128.232.103.201:22

# ls /tmp/bar
128.112.152.122 128.232.103.201 18.31.0.190

# cat /tmp/bar/*
planetlab-1.cs.princeton.edu
planetlab1.xeno.cl.cam.ac.uk
planetlab1.lcs.mit.edu

# pscp /etc/hosts /tmp/hosts
Success on 128.112.152.122:22
Success on 18.31.0.190:22
Success on 128.232.103.201:22

# pnuke java
Success on 128.112.152.122:22
Success on 18.31.0.190:22
Success on 128.232.103.201:22
译自:http://www.theether.org/pssh/docs/0.2.3/pssh-HOWTO.html#AEN40

05-23
### PSSH 的基本概念和技术背景 PSSH 是 Parallel SSH 的缩写,它是一种用于批量执行远程命令的工具集合。通过支持并行处理多个主机上的操作,PSSH 提供了一种高效的方式来管理和维护大量服务器。其核心功能包括但不限于并行执行命令、文件传输和日志记录。 PSSH 工具集通常由以下几个主要组件组成[^1]: - **pssh**: 并行执行命令。 - **pscp**: 并行复制文件到多台主机。 - **prsync**: 使用 `rsync` 进行高效的文件同步。 - **pbscp**: 从多台主机上拉取文件。 - **pput**: 向多台主机上传单个文件或目录。 这些工具依赖于 Python 和 Paramiko 库来实现基于 SSH 协议的安全通信。 #### 下载与安装 要下载和安装 PSSH,可以按照以下步骤进行: 对于大多数 Linux 发行版,可以通过包管理器直接安装: ```bash sudo apt-get install pssh # Debian/Ubuntu 系统 sudo yum install pssh # CentOS/RHEL 系统 ``` 如果无法通过包管理器获取,则可以从源码安装: ```bash git clone https://github.com/laggykiller/pssh.git cd pssh python setup.py install ``` 确保已安装必要的依赖项(如 Python 开发库),以便成功构建和运行 PSSH。 --- ### 使用方法详解 以下是 PSSH 主要子工具的一些典型用法示例: #### 执行并行命令 (pssh) 假设有一个包含目标主机列表的文件 `hostfile`,每行指定一个 IP 地址或主机名。下面是如何向所有主机发送相同的命令: ```bash pssh -h hostfile -l username -A -i "uptime" ``` 参数说明: - `-h`: 指定主机清单文件路径。 - `-l`: 设置登录用户名。 - `-A`: 请求交互式输入密码。 - `-i`: 显示每个主机的标准输出。 #### 复制文件至多台主机 (pscp) 将本地文件分发给一组远程机器: ```bash pscp.pssh -h hostfile -l username -p 10 -r /path/to/local/file /remote/path/ ``` 其中: - `-p`: 控制并发连接数,默认为 64。 - `-r`: 表明递归复制整个目录而非单一文件。 #### 日志收集 (pconsole) 当需要监控各节点的任务进度时,可启用此选项保存结果到单独的日志文件夹中: ```bash pssh -h hosts.txt -o output_dir -e error_dir -I <commands> ``` --- ### 注意事项 尽管 PSSH 功能强大,但在实际部署过程中仍需注意一些潜在风险点: 1. 密钥认证优于密码模式,因为后者可能暴露敏感数据; 2. 如果网络环境较差或者目标数量过多,建议调整超时时间和重试次数以提高稳定性; 3. 对大规模集群操作前务必测试小规模样本以免误删重要资料。 ```python import paramiko def connect_and_execute(host, command): """模拟简单的Paramiko调用""" client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) try: client.connect(hostname=host, port=22, username='your_username', password='password') stdin, stdout, stderr = client.exec_command(command) print(stdout.read().decode('utf-8')) finally: client.close() # Example usage with loop over multiple servers... servers = ['server1.example.com', 'server2.example.com'] for srv in servers: connect_and_execute(srv, 'df -h') # 查看磁盘空间状态 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值