parallel-ssh是一个为小规模自动化设计的异步并行SSH库!parallel-ssh是一个为小规模自动化设计的异步并行SSH库,包括pssh、pscp、prsync、pslurp和pnuke工具,其源代码是用Python语言编写和开发的。该项目最初位于GoogleCode上,由BrentN.Chun编写和维护,但由于工作繁忙,Brent于2009年10月将维护工作交给了AndrewMcNabb。2012年,由于GoogleCode关闭,项目一度被废弃,现在只能在GoogleCode的archive中找到当时的版本。但需要注意的是,之前的版本不支持Python3,但是Github上有人fork了一份,做了改造,支持Python3及以上版本。同时还有一个专门致力于parallel-ssh开发和维护的机构,今天看了很久没有更新了。如有必要,您可以自行检查。lilydjwg/pssh-支持Python3.5及更高版本ParallelSSH/parallel-ssh-异步并行SSH客户端库可扩展性支持扩展到数百甚至数千台主机在主机上运行命令是高效的,被称为最快的PythonSSH库。与其他PythonSSH库相比,它消耗的资源最少。$pipinsallpssh#源码编译安装(2.3.1)#官方地址:https://code.google.com/archive/p/parallel-ssh/source/default/source$tarzxvfpssh-2.3.1.tar.gz$cdpssh-2.3.1$pythonsetup.pyinstallParallelSSHversiononGoogle#Subcommands对应toolsSubcommands$ls-lh/usr/local/Cellar/pssh/2.3.1_1/bin/pnuke->../libexec/bin/pnukeprsync->../libexec/bin/prsynpscp->../libexec/bin/pscppslurp->../libexec/bin/pslurppssh->../libexec/bin/psshpssh-askpass->../libexec/bin/pssh-askpassnumbered子命令对应功能解释1pssh通过ssh协议在多台主机上并行运行命令2pscp通过ssh协议并行复制文件到多台主机3rsync通过rsync协议高效并行复制文件到多台主机4slurp通过ssh协议复制文件从多个远程复制hoststothecentralhostinparallel5pnuke通过ssh协议并行kill多台远程主机上的进程1.pssh通过ssh协议在多台主机上并行运行命令参数说明1-hHOST_FILE指定主机文件列表文件;内容格式为“[user@]host[:port]”2-HHOST_STRING指定主机字符串地址;内容格式为“[user@]host[:port]”3-lUSER指定用于登录的用户名4-pPAR设置并发线程数(可选)5-oOUTDIR标准正常输出的文件目录(可选)6-eERRDIR标准错误输出文件目录(可选)7-tTIMEOUT超时设置,其中0表示无限制(可选)8-OOPTION设置SSH选项9-xARGS附加命令行参数使用空白符号、引号和反斜杠处理10-XARG附加命令行参数,单参数方式,同-x参数11-A手动输入密码方式12-i输出每个服务器的内部处理信息13-P打印出服务器返回信息14--help查看帮助,即这条信息15--version显示程序版本号适用示例#Usage:pssh[OPTIONS]command[...]#在两台主机上运行命令,并在每台服务器上打印其输出$pssh-i-H"host1host2"hostname-i#runthecommandandsavetheoutputtoaseparatefile$pssh-Hhost1-Hhost2-opath/to/output_dirhostname-i#runthecommandonmultiplehostsandseparatethemonnewlines指定$pssh-i-hpath/to/hosts_filehostname-i#在文件中以root身份运行命令(必需询问root用户密码)$pssh-i-hpath/to/hosts_file-A-lroot_usernamehostname-i#使用额外的SSH参数运行命令$pssh-i-hpath/to/hosts_file-x"-OVisualHostKey=yes"hostname-i#运行命令,并行连接数限制为10$pssh-i-hpath/to/hosts_file-p10'cddir;./script.sh;exit'2。pscp通过ssh协议并行复制文件到多台主机上面命令的参数使用数字参数选项来解释对应的参数1-hHOST_FILE指定主机文件列表文件;内容格式为“[user@]host[:port]”2-HHOST_STRING指定主机字符串地址;内容格式为“[user@]host[:port]”3-lUSER指定登录使用的用户名4-pPAR设置并发线程数(可选)5-oOUTDIR标准普通输出文件目录(可选))6-eERRDIRstandard错误输出文件目录(可选)7-tTIMEOUT超时设置,其中0表示无限制(可选)8-OOPTION设置SSH的选项9-xARGS附加命令行参数使用空格符号、引号、反斜杠处理10-XARG附加命令行参数,单参数模式,同-x参数11-A手动输入密码mode12-r用于递归复制目录(可选)13--help查看帮助,即此信息14--version显示程序版本号适用示例#Usage:pscp[OPTIONS]localremote#Copylocalfilestoremote机器上$pscp-hhosts.txt-lrootfoo.txt/home/irb2/foo.txt[1]23:00:08[SUCCESS]172.18.10.25[2]09:52:28[SUCCESS]172.18.10.243.prsync高效复制通过rsync协议将文件并行传输到多个主机。命令参数使用编号参数选项对应参数说明1-hHOST_FILE指定主机文件列表文件;内容格式为“[user@]host[:port]”2-HHOST_STRING指定主机字符串地址;内容格式为“[user@]host[:port]”3-lUSER指定用于登录的用户名4-pPAR设置并发线程数(可选)5-oOUTDIR标准普通输出文件目录(可选))6-eERRDIR标准错误输出文件目录(可选)7-tTIMEOUT超时设置,其中0表示无限制(可选)8-OOPTION设置SSH选项9-xARGS额外的命令行参数使用空白符号、引号和反斜杠到进程10-XARG附加命令行参数,单参数模式,同-x参数11-A手动密码模式12-r用于递归复制目录(可选)12-a使用rsync的归档模式(可选)12-z使用rsync的压缩方式(可选)12-SARGS设置ssh协议的扩展参数(可选)13--help查看帮助,即此信息14--version显示程序版本号适用示例#Usage:prsync[OPTIONS]localremote#Usersync本地文件复制协议操作$prsync-r-hhosts.txt-lrootfoo/home/irb2/foo4。pslurp通过ssh协议将文件从多个远程主机并行复制到中央主机。命令参数使用数字参数选项对应参数说明1-hHOST_FILE指定主机文件列表文件;内容格式为“[user@]host[:port]”2-HHOST_STRING指定主机字符串地址;内容格式为“[user@]host[:port]”3-lUSER指定登录使用4-pPAR设置并发线程数(可选)5-oOUTDIR标准普通输出的文件目录(可选))6-eERRDIR标准错误输出的文件目录(可选)7-tTIMEOUT超时设置,其中0表示无限制(可选)8-OOPTION设置SSH选项9-xARGS附加命令行参数使用空格符号、引号、反斜杠处理10-XARG附加命令行参数,单参数模式,同-x参数11-A手动进入密码模式12-r递归复制目录(可选)13-LLOCALDIR指定本地存放文件的目录14--help查看帮助,就是这个信息15--version显示程序版本号适用示例#Usage:pslurp[OPTIONS]remotelocal#将远程主机上的文件复制到本地$pslurp-hhosts.txt-lroot-L/tmp/outdir/home/irb2/foo.txtfoo.txt5.pnuke通过ssh协议并行杀死多个远程主机上的进程ILE指定主机文件列表文件;内容格式为“[user@]host[:port]”2-HHOST_STRING指定主机字符串地址;内容格式为“[user@]host[:port]”3-lUSER指定登录用户名4-pPAR设置并发线程数(可选)5-oOUTDIR标准正常输出文件目录(可选)6-eERRDIR标准错误输出文件目录(可选)7-tTIMEOUT超时设置,其中0表示无限制(可选)8-OOPTION设置SSH选项9-xARGS附加命令行参数使用空格符号、引号、反斜杠处理10-XARG附加命令行参数,单参数模式,同-x参数11-A手动进入密码模式12--help查看帮助,即此信息13--version显示程序版本号适用示例#Usage:pnuke[OPTIONS]pattern#结束远程主机上的进程任务$pnuke-hhosts.txt-lrootjava
