gather.py

様々なホストに分散したディレクトリを一ホストに集めます。
例えば、様々なホストでパージングなどの作業をした後、生成された大きなデータを特定のホストにコピーする際、NFSを用いるとパフォーマンスが低下してしまいます。このスクリプトでは、ソケット接続で各ホストからファイルを順番に転送します。 GXPと組み合わせて用いるのが便利です。

ダウンロード

使い方

データを集めたい全ホストで、以下の引数でコマンドを実行します。
./gather.py (集めたいディレクトリの絶対パス) (集めるホスト):(ポート):(集めるディレクトリ)
GXPを用いる場合は以下のようになります。
$ gxpc e ./gather.py /data/kay/hoge master.somewhere.com:20000:/home/kay/gathered
プログラムが実行されたノードのうち、master以外の全てのホストの/data/kay/hogeというディレクトリからデータが転送されます。 これらのデータはホストごとにディレクトリが作られ、master.somewhere.comの/home/kay/gathered/(ホスト名)/以下に格納されます。
-f をつけない場合、既にあるファイルに上書きせず、そこでそのホストからの転送は終了します。-fがある場合は上書きして続行します。