Linuxバッチリモート実行コマンド管理pssh
4211 ワード
psshは,単純な文字インタフェースが複数のサーバに同時に命令を送信して実行するツールである.クラスタの大量サーバに同じ命令を一度に送信するのに適しています(出力を観察します)
ホスト接続リモートホストは、sshキーを使用してパスワードなしで接続できます.SSHを参照してください.パスワードキーを使用してログインする必要はありません.
1.ダウンロード
使用前提
ホスト接続リモートホストは、sshキーを使用してパスワードなしで接続できます.SSHを参照してください.パスワードキーを使用してログインする必要はありません.
1.ダウンロード
ダウンロードページ:https://code.google.com/archive/p/parallel-ssh/downloads
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/parallel-ssh/pssh-2.3.1.tar.gz wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/parallel-ssh/pssh-2.3.1.tar.gz
2.インストール
tar -zxvf pssh-2.3.1.tar.gz
cd pssh-2.3.1
python setup.py build
python setup.py install
redhat(またはCentOS)ならyumでインストールすることもできますyum install -y pssh
3.使用
3.1 psshパラメータの紹介
-hコマンドを実行するリモートホストのリストまたは-Huser@ip:portファイル内容フォーマット[user@]host[:port]
-lリモートマシンのユーザー名
-p一度に最大許容接続数
-o出力内容をファイルにリダイレクト
-e実行エラーをファイルにリダイレクト
-tコマンド実行のタイムアウト時間の設定
-パスワードの入力を求めてsshに渡す
-O sshパラメータの詳細設定、ssh_参照configプロファイル
-xは複数のSSHコマンドを渡し、複数のコマンドはスペースで区切られ、引用符で囲まれる
-Xは-xと同じですが、一度に1つのコマンドしか伝えられません.
-i標準出力と標準エラーを表示する各ホストの実行が完了した後
-I各入力コマンドを読み出し、sshプロセスに渡すことで、コマンドスクリプトを標準入力に転送できます.
詳細はコマンド: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
3.2パッケージ内のその他のコマンドの説明
psshパッケージには5つのユーティリティがインストールされています.psshは複数のホスト上でコマンドを並列に実行します.pscpはファイルを複数のホストに並列にコピーします.prsyncはrsyncプロトコルによってファイルを効率的に複数のホストに並列にコピーする.pslurpは、複数のリモートホストからセンタホストにファイルを並列にコピーします.pnukeは、複数のリモートホスト上でプロセスを並列に殺します.
4.操作例
4.1サーバIPプロファイルresin.coupons-web.hostsの内容は以下の通りです.10.10.12.37
10.10.12.38
4.2 psshリモート実行コマンド:whoamiは以下の通り:[reader@test hosts]$ pssh -h resin.coupons-web.hosts -P 'whoami'
10.10.12.37: reader
[1] 16:00:09 [SUCCESS] 10.10.12.37
10.10.12.38: reader
[2] 16:00:09 [SUCCESS] 10.10.12.38
4.2.1リモート実行コマンド:whoamiとリモートログインユーザーrootを指定する: pssh -l root -h resin.coupons-web.hosts -P 'whoami'
4.3 pscpファイルを複数のホストに並列にコピーする
本機をtxtを複数のホストにアップロード/tmp/[reader@test hosts]$ pscp -h resin.coupons-web.hosts readme.txt /tmp/
[1] 16:03:20 [SUCCESS] 10.10.12.37
[2] 16:03:20 [SUCCESS] 10.10.12.38
4.4ファイルをリモートホストからローカルにコピーし、pscp方向とは反対:
リモートホストファイル/tmp/readme.txtはローカルホーム~/下ファイルreadmeにコピーする.txt
-Lネイティブディレクトリの指定
実行が完了すると、ファイルはホストディレクトリの下の対応するIPアドレスのディレクトリに格納されます.
~/10.10.12.37/readme.txt
~/10.10.12.38/readme.txt [reader@test hosts]$ pslurp -h resin.coupons-web.hosts -L ~/ /tmp/readme.txt readme.txt
[1] 16:17:39 [SUCCESS] 10.10.12.37
[2] 16:17:39 [SUCCESS] 10.10.12.38
参考文献:大量のコンピュータを効率的に管理する
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/parallel-ssh/pssh-2.3.1.tar.gz
tar -zxvf pssh-2.3.1.tar.gz
cd pssh-2.3.1
python setup.py build
python setup.py install
yum install -y pssh
3.1 psshパラメータの紹介
-hコマンドを実行するリモートホストのリストまたは-Huser@ip:portファイル内容フォーマット[user@]host[:port]
-lリモートマシンのユーザー名
-p一度に最大許容接続数
-o出力内容をファイルにリダイレクト
-e実行エラーをファイルにリダイレクト
-tコマンド実行のタイムアウト時間の設定
-パスワードの入力を求めてsshに渡す
-O sshパラメータの詳細設定、ssh_参照configプロファイル
-xは複数のSSHコマンドを渡し、複数のコマンドはスペースで区切られ、引用符で囲まれる
-Xは-xと同じですが、一度に1つのコマンドしか伝えられません.
-i標準出力と標準エラーを表示する各ホストの実行が完了した後
-I各入力コマンドを読み出し、sshプロセスに渡すことで、コマンドスクリプトを標準入力に転送できます.
詳細はコマンド: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
3.2パッケージ内のその他のコマンドの説明
psshパッケージには5つのユーティリティがインストールされています.psshは複数のホスト上でコマンドを並列に実行します.pscpはファイルを複数のホストに並列にコピーします.prsyncはrsyncプロトコルによってファイルを効率的に複数のホストに並列にコピーする.pslurpは、複数のリモートホストからセンタホストにファイルを並列にコピーします.pnukeは、複数のリモートホスト上でプロセスを並列に殺します.
4.操作例
4.1サーバIPプロファイルresin.coupons-web.hostsの内容は以下の通りです.10.10.12.37
10.10.12.38
4.2 psshリモート実行コマンド:whoamiは以下の通り:[reader@test hosts]$ pssh -h resin.coupons-web.hosts -P 'whoami'
10.10.12.37: reader
[1] 16:00:09 [SUCCESS] 10.10.12.37
10.10.12.38: reader
[2] 16:00:09 [SUCCESS] 10.10.12.38
4.2.1リモート実行コマンド:whoamiとリモートログインユーザーrootを指定する: pssh -l root -h resin.coupons-web.hosts -P 'whoami'
4.3 pscpファイルを複数のホストに並列にコピーする
本機をtxtを複数のホストにアップロード/tmp/[reader@test hosts]$ pscp -h resin.coupons-web.hosts readme.txt /tmp/
[1] 16:03:20 [SUCCESS] 10.10.12.37
[2] 16:03:20 [SUCCESS] 10.10.12.38
4.4ファイルをリモートホストからローカルにコピーし、pscp方向とは反対:
リモートホストファイル/tmp/readme.txtはローカルホーム~/下ファイルreadmeにコピーする.txt
-Lネイティブディレクトリの指定
実行が完了すると、ファイルはホストディレクトリの下の対応するIPアドレスのディレクトリに格納されます.
~/10.10.12.37/readme.txt
~/10.10.12.38/readme.txt [reader@test hosts]$ pslurp -h resin.coupons-web.hosts -L ~/ /tmp/readme.txt readme.txt
[1] 16:17:39 [SUCCESS] 10.10.12.37
[2] 16:17:39 [SUCCESS] 10.10.12.38
参考文献:大量のコンピュータを効率的に管理する
10.10.12.37
10.10.12.38
[reader@test hosts]$ pssh -h resin.coupons-web.hosts -P 'whoami'
10.10.12.37: reader
[1] 16:00:09 [SUCCESS] 10.10.12.37
10.10.12.38: reader
[2] 16:00:09 [SUCCESS] 10.10.12.38
pssh -l root -h resin.coupons-web.hosts -P 'whoami'
[reader@test hosts]$ pscp -h resin.coupons-web.hosts readme.txt /tmp/
[1] 16:03:20 [SUCCESS] 10.10.12.37
[2] 16:03:20 [SUCCESS] 10.10.12.38
[reader@test hosts]$ pslurp -h resin.coupons-web.hosts -L ~/ /tmp/readme.txt readme.txt
[1] 16:17:39 [SUCCESS] 10.10.12.37
[2] 16:17:39 [SUCCESS] 10.10.12.38