名 前
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 [AT] debian.org) ホ ー ム ペ ー ジ は http://www.netfort.gr.jp/~dancer/software/dsh.html に あ り ま す .