CentOS7でpsshをインストールして使用する

設置環境を確認する

Psshにはpython2.4以降が必要です。まず、CentOSでPythonのバージョンを確認します。クエリコマンドは次のとおりです。

[root@hadoop-master ~]# python --version
Python 2.7.5

Pythonをインストールしていない場合は、自分でインストールできます。「Linuxでの初心者のためのPythonの基本インストール」

psshをインストールする

wget https://pypi.python.org/packages/60/9a/8035af3a7d3d1617ae2c7c174efa4f154e5bf9c24b36b623413b38be8e4a/pssh-2.3.1.tar.gz
tar xf pssh-2.3.1.tar.gz -C /usr/local/pssh/
cd /usr/local/pssh/pssh-2.3.1/
python setup.py install

インストールを表示

[root@hadoop-master pssh-2.3.1]# pssh --help
Usage: pssh [OPTIONS] command [...]

Options:
  --version             show program's version number and exit
  --help                show this help message and exit
  -h HOST_FILE, --hosts=HOST_FILE
                        hosts file (each line "[user@]host[:port]")
  -H HOST_STRING, --host=HOST_STRING
                        additional host entries ("[user@]host[:port]")
  -l USER, --user=USER  username (OPTIONAL)
  -p PAR, --par=PAR     max number of parallel threads (OPTIONAL)
  -o OUTDIR, --outdir=OUTDIR
                        output directory for stdout files (OPTIONAL)
  -e ERRDIR, --errdir=ERRDIR
                        output directory for stderr files (OPTIONAL)
  -t TIMEOUT, --timeout=TIMEOUT
                        timeout (secs) (0 = no timeout) per host (OPTIONAL)
  -O OPTION, --option=OPTION
                        SSH option (OPTIONAL)
  -v, --verbose         turn on warning and diagnostic messages (OPTIONAL)
  -A, --askpass         Ask for a password (OPTIONAL)
  -x ARGS, --extra-args=ARGS
                        Extra command-line arguments, with processing for
                        spaces, quotes, and backslashes
  -X ARG, --extra-arg=ARG
                        Extra command-line argument
  -i, --inline          inline aggregated output and error for each server
  --inline-stdout       inline standard output for each server
  -I, --send-input      read from standard input and send as input to ssh
  -P, --print           print output as we get it

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

psshコマンドパッケージ

コマンドパッケージ 特徴
PSSH 複数のホストでコマンドを並行して実行する
PSCP 複数のホストにファイルを転送します。その特性はscpに似ています
prsync ローカルコンピューターからリモートホストにrsyncプロトコルを使用する
pslurp リモートホストからローカルにファイルをコピーする
プヌーク リモートマシンのプロセスを終了する

パラメータの説明:

パラメータ パラメータの説明
-h コマンドを実行するリモートホストのリストはテキストファイルで、ホストIPまたはホスト名はキャリッジリターンで区切られています。
-l リモートマシンのユーザー名
-p 一度に許可される最大接続数(小文字)
- 出力をファイルにリダイレクトする(小文字)
-e ファイルにリダイレクトされた実行エラー
-t コマンド実行のタイムアウト期間を設定する
-A パスワードを要求してパスワードをsshに渡す
-THE sshパラメータの特定の構成を設定します。ssh_config構成ファイル(大文字)を参照してください
-バツ 複数のSSHコマンドを渡し、複数のコマンドをスペースで区切り、それらを引用符で囲みます
-バツ -xと同じですが、一度に渡すことができるコマンドは1つだけです
-私 各ホストの実行後に標準出力と標準エラーを表示する
-私 各入力コマンドを読み取り、それをsshプロセスに渡して、コマンドスクリプトを標準入力に渡せるようにします。
-P プリントアウト(大文字)

コマンド固有の使用

サーバー間にパスワードなしのログインを設定
することをお勧めします。「CentOS7仮想マシン間でパスワードなしのログインを設定する」を参照してください最初に、hosts.txtファイルを編集して、操作するホストのアドレスを記録します。以下は、私のホストの構成です。 hadoop-slave2と
hadoop-slave3はオフです

[root@hadoop-master pssh]# cat hosts.text 
hadoop-slave1
hadoop-slave2
hadoop-slave3

コマンドのpsshリモートバッチ実行

#-h  后面接主机ip文件,文件数据格式[user@]host[:port]
#-P  显示输出内容

特定の使用

[root@hadoop-master pssh]# pssh -P -h hosts.text uptime
hadoop-slave1:  13:55:14 up 1 day,  4:03,  0 users,  load average: 0.00, 0.01, 0.05
[1] 13:55:31 [SUCCESS] hadoop-slave1
[2] 13:55:33 [FAILURE] hadoop-slave2 Exited with error code 255
[3] 13:55:33 [FAILURE] hadoop-slave3 Exited with error code 255

パスワードを入力する場合は、次のコマンドを使用できます。

[root@hadoop-master pssh]# pssh -A -h hosts.text uptime

の場合执行长shell命令、次のようになります。

[root@hadoop-master pssh]# pssh -h hosts.text "source /etc/profile"
[1] 21:01:46 [SUCCESS] hadoop-slave3
[2] 21:01:46 [SUCCESS] hadoop-slave2
[3] 21:01:46 [SUCCESS] hadoop-slave1

リモートへのpscp並列転送ファイル

ファイルを転送しますが、リモートの新しいディレクトリの作成はサポートしていません

[root@hadoop-master pssh]# pscp -r -h hosts.text ./* /usr/local
[1] 14:10:31 [SUCCESS] hadoop-slave1
[2] 14:10:34 [FAILURE] hadoop-slave2 Exited with error code 1
[3] 14:10:34 [FAILURE] hadoop-slave3 Exited with error code 1

prsyncはファイルをリモートに並行して転送します

ファイルを転送し、リモートの新しいディレクトリ作成をサポート

[root@hadoop-master pssh]# pscp -r -h hosts.text hosts.text  /usr/local/pssh/
[1] 14:17:18 [FAILURE] hadoop-slave1 Exited with error code 1
[2] 14:17:21 [FAILURE] hadoop-slave2 Exited with error code 1
[3] 14:17:21 [FAILURE] hadoop-slave3 Exited with error code 1

比較した

[root@hadoop-master pssh]# prsync -r -h hosts.text hosts.text  /usr/local/pssh/
[1] 14:18:08 [SUCCESS] hadoop-slave1
[2] 14:18:11 [FAILURE] hadoop-slave2 Exited with error code 255
[3] 14:18:11 [FAILURE] hadoop-slave3 Exited with error code 255

pslurpはリモートからローカルにプルします

Pslurpはリモートからローカルにファイルをプルし、リモートホストipという名前のディレクトリをローカルに自動的に作成し、プルしたファイルを対応するホストIPディレクトリに配置し
ますフォーマット:pslurp -h ip.txt -L <ローカルディレクトリ> <リモートディレクトリ/ファイル> <ローカルの名前変更>

[root@hadoop-master pssh]# pslurp -h hosts.text -L /usr/local/test /usr/local/pssh/hosts.text psshtest
[1] 14:26:49 [SUCCESS] hadoop-slave1
[2] 14:26:52 [FAILURE] hadoop-slave2 Exited with error code 1
[3] 14:26:52 [FAILURE] hadoop-slave3 Exited with error code 1

これは、構成されたIPまたはホストに基づいてフォルダーディレクトリを作成します

drwxr-xr-x. 2 root root        22 8月  11 14:26 hadoop-slave1
drwxr-xr-x. 2 root root         6 8月  11 14:24 hadoop-slave2
drwxr-xr-x. 2 root root         6 8月  11 14:24 hadoop-slave3

pnukeリモートバッチkillall

[root@hadoop-master pssh]# pnuke -h hosts.text java
[1] 14:32:04 [SUCCESS] hadoop-slave1
[2] 14:32:06 [FAILURE] hadoop-slave2 Exited with error code 255
[3] 14:32:06 [FAILURE] hadoop-slave3 Exited with error code 255

おすすめ

転載: blog.csdn.net/u011047968/article/details/107937572