日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

自动化运维之PSSH

發(fā)布時間:2025/7/14 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自动化运维之PSSH 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.PSSH簡介

PSSH提供OpenSSH和相關工具的并行版本。包括pssh,pscp,prsync,pnuke和pslurp。該項目包括psshlib,可以在自定義應用程序中使用。
pssh是python寫的可以并發(fā)在多臺機器上批量執(zhí)行命令的工具,它的用法可以媲美ansible的一些簡單用法,執(zhí)行起來速度比ansible快它支持文件并行復制,遠程命令執(zhí)行,殺掉遠程主機上的進程等等。殺手锏是文件并行復制,,當進行再遠程主機批量上傳下載的時候,最好使用它。
項目地址: https://code.google.com/archive/p/parallel-ssh/

2.PSSH使用

2.1 安裝PSSH

前提條件:注意需要安裝 python 2.4 或以上版本

wget https://clsn.io/files/pssh/pssh-2.3.1.tar.gz tar zxf pssh-2.3.1.tar.gz cd pssh-2.3.1 python setup.py install

安裝過程

[root@clsn.io /opt/pssh-2.3.1] #python setup.py install running install running build running build_py creating build creating build/lib creating build/lib/psshlib copying psshlib/task.py -> build/lib/psshlib copying psshlib/askpass_server.py -> build/lib/psshlib copying psshlib/__init__.py -> build/lib/psshlib copying psshlib/cli.py -> build/lib/psshlib copying psshlib/psshutil.py -> build/lib/psshlib copying psshlib/manager.py -> build/lib/psshlib copying psshlib/askpass_client.py -> build/lib/psshlib copying psshlib/version.py -> build/lib/psshlib copying psshlib/color.py -> build/lib/psshlib running build_scripts creating build/scripts-2.6 copying and adjusting bin/pssh -> build/scripts-2.6 copying and adjusting bin/pnuke -> build/scripts-2.6 copying and adjusting bin/prsync -> build/scripts-2.6 copying and adjusting bin/pslurp -> build/scripts-2.6 copying and adjusting bin/pscp -> build/scripts-2.6 copying and adjusting bin/pssh-askpass -> build/scripts-2.6 changing mode of build/scripts-2.6/pssh from 644 to 755 changing mode of build/scripts-2.6/pnuke from 644 to 755 changing mode of build/scripts-2.6/prsync from 644 to 755 changing mode of build/scripts-2.6/pslurp from 644 to 755 changing mode of build/scripts-2.6/pscp from 644 to 755 changing mode of build/scripts-2.6/pssh-askpass from 644 to 755 running install_lib creating /usr/lib/python2.6/site-packages/psshlib copying build/lib/psshlib/task.py -> /usr/lib/python2.6/site-packages/psshlib copying build/lib/psshlib/askpass_server.py -> /usr/lib/python2.6/site-packages/psshlib copying build/lib/psshlib/__init__.py -> /usr/lib/python2.6/site-packages/psshlib copying build/lib/psshlib/cli.py -> /usr/lib/python2.6/site-packages/psshlib copying build/lib/psshlib/psshutil.py -> /usr/lib/python2.6/site-packages/psshlib copying build/lib/psshlib/manager.py -> /usr/lib/python2.6/site-packages/psshlib copying build/lib/psshlib/askpass_client.py -> /usr/lib/python2.6/site-packages/psshlib copying build/lib/psshlib/version.py -> /usr/lib/python2.6/site-packages/psshlib copying build/lib/psshlib/color.py -> /usr/lib/python2.6/site-packages/psshlib byte-compiling /usr/lib/python2.6/site-packages/psshlib/task.py to task.pyc byte-compiling /usr/lib/python2.6/site-packages/psshlib/askpass_server.py to askpass_server.pyc byte-compiling /usr/lib/python2.6/site-packages/psshlib/__init__.py to __init__.pyc byte-compiling /usr/lib/python2.6/site-packages/psshlib/cli.py to cli.pyc byte-compiling /usr/lib/python2.6/site-packages/psshlib/psshutil.py to psshutil.pyc byte-compiling /usr/lib/python2.6/site-packages/psshlib/manager.py to manager.pyc byte-compiling /usr/lib/python2.6/site-packages/psshlib/askpass_client.py to askpass_client.pyc byte-compiling /usr/lib/python2.6/site-packages/psshlib/version.py to version.pyc byte-compiling /usr/lib/python2.6/site-packages/psshlib/color.py to color.pyc running install_scripts copying build/scripts-2.6/pscp -> /usr/bin copying build/scripts-2.6/prsync -> /usr/bin copying build/scripts-2.6/pnuke -> /usr/bin copying build/scripts-2.6/pssh -> /usr/bin copying build/scripts-2.6/pssh-askpass -> /usr/bin copying build/scripts-2.6/pslurp -> /usr/bin changing mode of /usr/bin/pscp to 755 changing mode of /usr/bin/prsync to 755 changing mode of /usr/bin/pnuke to 755 changing mode of /usr/bin/pssh to 755 changing mode of /usr/bin/pssh-askpass to 755 changing mode of /usr/bin/pslurp to 755 running install_data creating /usr/man creating /usr/man/man1 copying man/man1/pssh.1 -> /usr/man/man1 copying man/man1/pscp.1 -> /usr/man/man1 copying man/man1/prsync.1 -> /usr/man/man1 copying man/man1/pslurp.1 -> /usr/man/man1 copying man/man1/pnuke.1 -> /usr/man/man1 running install_egg_info Writing /usr/lib/python2.6/site-packages/pssh-2.3.1-py2.6.egg-info

2.2 安裝完成

使用yum安裝后,只能使用pssh,但是編譯安裝后會包括其他命令也安裝了(pscp prsync pnuke pslurp)
pssh:在遠程多臺主機上并行運行命令

Example: pssh -h hosts.txt -l irb2 -o /tmp/foo uptime

pscp :把文件并行復制到多臺遠程主機上

Example: pscp -h hosts.txt -l irb2 foo.txt /home/irb2/foo.txt

prsync:使用rsync協(xié)議本地文件同步到遠程多臺主機上。

Example: prsync -r -h hosts.txt -l irb2 foo /home/irb2/foo

pnuke:在遠程多臺主機上并行killall某一進程

Example: pnuke -h hosts.txt -l irb2 java

pslurp:把文件從遠程多臺主機上復制到本地主機上

Example: pslurp -h hosts.txt -L /tmp/outdir -l irb2 /home/irb2/foo.txt foo.txt

2.3 pssh參數(shù)說明

-h HOST_FILE 后邊跟遠程主機列表(ip)
-H HOST_STRING 后邊跟遠程主機名或者ip地址
-l USER 指定遠程主機的用戶名-p PAR 指定pssh最大的并行線程數(shù)。
-o 將輸出的內容重定向到一個指定的文件中
-O 指定ssh參數(shù)的具體配置
-e 將執(zhí)行錯誤重定向到一個指定的文件中
-t 設定命令執(zhí)行超時時間
-x 傳遞ssh命令的一些參數(shù)
-i 在遠程主機上執(zhí)行命令完成后顯示標準輸出和標準錯誤
-P 在執(zhí)行遠程命令時,輸出執(zhí)行結果

2.4 其他常用的方法

pssh使用幫助

pssh --help

pssh查看所有服務器的uptime

-h list 指定了執(zhí)行命令的機器列表-A表示提示輸入密碼(如果機器都是ssh key打通的則無需加-A) pssh -i -A -h list 'uptime'

使用pscp向一堆機器分發(fā)文件

pscp -h list localfile remote_dir

從一堆機器中拷貝文件到中心機器

pslurp -h list /etc/hosts local_dir

2.5 常見問題

如果你遇到這樣的錯誤:

IOError: [Errno 4] Interrupted system call

建議升級python版本到python2.7

3.附錄

3.1 pssh CLSN站點鏡像地址

本站將pssh軟件包鏡像到本地,以防丟失,有需求的可以執(zhí)行下載,下載后注意校驗MD5值。

File Summary + Labels Uploaded Size
pssh-2.3.1.tar.gz PSSH 2.3.1 Source Feb 3, 2012 22.88KB
pssh-2.3.tar.gz PSSH 2.3 Source Jan 25, 2012 21.62KB
pssh-2.2.2.tar.gz PSSH 2.2.2 Source Feb 3, 2011 20.94KB
pssh-2.2.1.tar.gz PSSH 2.2.1 Source Jan 27, 2011 20.88KB
pssh-2.2.tar.gz PSSH 2.2 Source Jan 27, 2011 20.84KB
pssh-2.1.1.tar.gz PSSH 2.1.1 Source Mar 5, 2010 17.94KB
pssh-2.1.tar.gz PSSH 2.1 Source Feb 26, 2010 17.65KB
pssh-2.0.tar.gz PSSH 2.0 Source Oct 21, 2009 15.03KB

3.2 pssh GOOGLE源

FileSummary + LabelsUploadedSize
pssh-2.3.1.tar.gz?PSSH 2.3.1 SourceFeb 3, 201222.88KB
?pssh-2.3.tar.gz?PSSH 2.3 SourceJan 25, 201221.62KB
?pssh-2.2.2.tar.gz?PSSH 2.2.2 SourceFeb 3, 201120.94KB
?pssh-2.2.1.tar.gz?PSSH 2.2.1 SourceJan 27, 201120.88KB
?pssh-2.2.tar.gz? PSSH 2.2 SourceJan 27, 201120.84KB
?pssh-2.1.1.tar.gz?PSSH 2.1.1 SourceMar 5, 201017.94KB
?pssh-2.1.tar.gz?PSSH 2.1 SourceFeb 26, 201017.65KB
?pssh-2.0.tar.gz?PSSH 2.0 SourceOct 21, 200915.03KB

3.3 文件包MD5值

下載完成后務必校驗MD5值

MD5值文件名
dbdbfda5681b82d4c64abdb3668e88bcpssh-2.3.tar.gz
53e70d53064f658bf8f44880340e8e5cpssh-2.3.1.tar.gz
689207677b260a7e4178174295b1389epssh-2.2.tar.gz
865305ae39647884bc54a42e9f9554bbpssh-2.2.2.tar.gz
f7583259976ef64bf3cae957a0b66e41pssh-2.2.1.tar.gz
725f902bb7e128cc7aa1322551f7ca37pssh-2.1.tar.gz
4b355966da91850ac530f035f7404cd5pssh-2.1.1.tar.gz
07474f9f9dbefedc809e997f04e1dee5pssh-2.0.tar.gz

4.參考文獻

https://code.google.com/archive/p/parallel-ssh/
http://opstool.com/article/266
https://www.cnblogs.com/Dicky-Zhang/p/5988415.html
https://help.aliyun.com/knowledge_detail/38835.html

作者:慘綠少年
出處:http://clsn.io
本文版權歸作者所有,歡迎轉載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

總結

以上是生活随笔為你收集整理的自动化运维之PSSH的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。