1つのシェルから複数のSSHセッションを同時に実行するツール3種類を試すLeverage OSS(1/4 ページ)

複数のリモートマシンを管理しなければならないシステム管理者は多い。そんな悩める管理者のために、並行処理型のSSHツールを3種紹介しよう。それぞれに長所があり、あなたの悩みをきっと解決してくれる。

» 2008年11月12日 00時00分 公開
[Ben Martin,SourceForge.JP Magazine]
SourceForge.JP Magazine

 リモートマシンへのログインやファイルのコピーなど、システム管理作業全般でSSHを利用する機会は多い。SSHでの作業を効率よく進めるには、複数のリモートマシンに対してコマンドを同時に実行できるツールを使ってみるとよいだろう。この記事では、Parallel sshCluster SSHClusterItという3つのツールを紹介する。いずれも、単一のターミナルウインドウで入力したコマンドを、対象となる複数のリモートマシンに対して一斉に送ることができる。

 こうしたツールを使わずに、openSSHで複数ホストに対する処理を行うことも不可能ではない。例えば、実行するコマンドを記述したファイルを作成し、bashのforループを使って、複数のリモートホストに対して順次実行していけばよい。だが、ツールを使うことにはメリットがある。その1つは、複数のホストで並行してコマンドを実行できる点だ。短時間で完了するタスクならたいした違いはないが、例えば完了までに1時間を要するタスクを20台のホストに対して実行するとなると、順次実行するより並行処理で進める方がはるかに短時間で済むことになる。あるいは、複数のマシンで同じファイルをインタラクティブに編集するとしたら、並行処理型のSSHツールを使い、すべてのノードを対象としてviでファイルを編集する方が、同じ編集を行うスクリプトをわざわざ作るよりも短時間で済むと考えられる。

 並行処理型のSSHツールの多くには、多数のホストに対してまとめてコピーを行う機能(scpコマンドの並行処理版)や、まとめてrsyncを行う機能がある。また、対象となる全ホストを把握していることから、負荷分散を用いて、いずれかのホストで各コマンドを実行する機能を持つツールもある。さらに、「バリア」機能を持つツールもある。これは、一連のコマンド処理を複数の部分に分けておき、ある部分の処理から次の部分へ移るときには全ノードがそろって進むようにする機能だ。早く処理が完了したノードは、ほかの全ノードが完了するまでは次の部分へ進まず待機する。

       1|2|3|4 次のページへ

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ