Provided by: dsh_0.25.10-1.6build1_amd64
名前
dsh - 分散シェル.もしくはダンサーのシェル
書式
dsh [-m マシン名 | -a | -g グループ名] [-r リモートシェル名] [-c | -w | -i | -F forklimit ] -- コマンドライン
説明
dsh は複数のマシンで同時にコマンドを実行するためのユーティリティーです. このユーティリ ティーはBourneシェルで表現すると for a in $(seq 1 10); do rsh $a command; done と同等の事 ができます.
オプション
利用可能なオプションは以下の通りです --verbose | -v 冗長な出力を出します. --quiet | -q 出力を静かにします. --machine | -m [マシン名[,マシン名]*] マシン名 をコマンドが実行されるマシンの一覧に追加します. マシン名 の形式は ユーザ 名@マシン名 という形をとります.この形式を利用すると ユーザ名 でリモートホストにロ グインできます. バージョン 0.21.4 から ユーザ名@マシン名,ユーザ名@マシン名,ユーザ名@マシン名 の形式 で複数のホストをコンマ区切りで指定することができるようになりました. --all | -a Add all machines found in /etc/dsh/machines.list にある全ホストを指定したコマンドを 実行するホストの一覧に追加します. --group groupname | -g groupname /etc/dsh/group/グループ名 にある全ホストを指定したコマンドを実行するホストの一覧に 追加します. グループ名が @ネットグループ の形式で指定されているのなら,指定されたネットグループ を コマンドを実行するためのホストの一覧に追加します. --file マシンファイル | -f マシンファイル 指定したファイルにある全ホストを指定したコマンドを実行するホストの一覧に追加しま す. ファイルの中では一行に一台づつマシンを指定します( machinename と同じ書式で指定しま す)。 "#"で開始する行は無視されます。 バージョン 0.21.4 から同じマシンを複数回指定すると, 一つの実行にマージされるように なりました. --remoteshell シェル名 | -r シェル名 シェル名 というリモートシェルを利用する. 通常 "rsh" や "remsh" や "ssh" が利用可能 です. --remoteshellopt リモートシェルオプション | -o リモートシェルオプション リモートシェルオプション をリモートシェルに与えるオプションのリストに追加する. --help | -h ヘルプメッセージを出力して終了する. --wait-shell | -w 各マシンで実行し,実行し終ってから次のマシンで実行する. --concurrent-shell | -c シェルを並列に実行する. --show-machine-names | -M マシン名を標準出力の出力に追加する. --concurrent-shell オプションと同時に使うと出 力が多少は見やすくなる. --hide-machine-names | -H マシン名を標準出力の出力に追加しない. --duplicate-input | -i dshプロセスの入力を各リモートプロセスに分配する. --concurrent-shell オプションを指 定している必要がある. 現在の実装の制限により,シェルを実行する以外の用途には訳に立たない. シェルのセッ ションを終了するには,CtrlーDを押すこと. --bufsize | -b [バッファサイズ(バイト)] --duplicate-input の入力を複製する際に利用するバッファサイズを指定する. --version | -V バージョン情報を出力して終了する. --num-topology | -N トポロジを1から変更する. 1がデフォルトの1ノードから全ノードにシェルを実行するスタ イルです. 2以上の値に指定すると,dshが他のマシンでも実行されるようになります. --forklimit | -F fork limit -c と同様の効果を持つ. このオプションは同時接続の数に制限を設ける. 限界を越えた場 合,新しい接続を作成する前に他の接続が終了するのを待つ. 同時にアクセスするホストの 数が200を越えており, -N オプションを利用することが好ましくない環境の場合に利用す る.
終了コード
最初のゼロ以外の終了コードを返した子プロセスの終了コードを返します. もし全てのプロセスが ゼロを終了コードとして返したのなら,0を返します. コマンドラインオプションの失敗があった場合は,EXIT_FAILUREを返します.
例
dsh -a w 全ワークステーションにログインしているユーザの一覧を表示します. dsh -r ssh -a -- w sshを利用して,全ワークステーションにログインしているユーザの一覧を表示します. (sshを利用するときには,ssh-agentを利用するのが良いでしょう.) dsh -r ssh -m node1 -m node2 -c -- 'echo $HOSTNAME $(cat/proc/loadavg )' node1とnode2の負荷平均を表示します.
ファイル
/etc/dsh/machines.list | $(HOME)/.dsh/machines.list -a コマンドラインオプションが指定されたときに利用するマシンの一覧. /etc/dsh/group/groupname | $(HOME)/.dsh/group/groupname -g グループ名 オプションが指定されたときに利用するマシンの一覧 /etc/dsh/dsh.conf | $(HOME)/.dsh/dsh.conf 毎日使うデフォルト設定の書いてあるファイル.
バグ
ファイルをコピーするための dcp プログラムがあるべきだろう. 設定ファイルももっと柔軟になるべきだ.
著者
上川純一 (dancer@debian.org) ホームページは http://www.netfort.gr.jp/~dancer/software/dsh.html にあります.
関連項目
rsh(1), ssh(1), remsh(1), dsh.conf(5)