各サーバへファイルを設置する場合
ちょっとした応用として二通りあげる
一つは複数ファイルを送る場合
$ tar cf - Makefile *.c *.h | dsh -iacM tar xvf - -C path/
サイズが小さければ,これで送ってしまえば結構楽.
Makefile *.c *.h は送りたいファイル
path/ は送り先ディレクトリ
だた一つ注意が必要で,絶対パスでやると,たとえば
~/.bashrc とかすると home/user/.bashrcというファイルを作ろうとする
# 正確には/も入るけど,オプションによって異なる.
ま,詳しくはtar(http://www.linux.or.jp/JM/html/GNU_tar/man1/tar.1.html)のmanで確認してください
もう一つは,サーバによって微妙にファイルが違う場合
たとえば,何かのコンフィグファイルで $HOME/bin を設定したいけれど,$HOMEは展開しておかなければならず,しかもサーバ毎に違う場合.
具体的にあげれば,dot.configrcってファイルを用意して
ROOT $HOME/tools/appli
として
$ dsh -aM 'echo "'"`cat dot.configrc `"'" > ~/.configrc'
とすれば,$HOMEが /home/user やら /export/home/user やらに置き換えられるわけ.でも,このクォーテションの嵐はやんなるね.
処理が複雑な場合は,スクリプト書いたほうが早いだろね.
あと,.bashrcに export SITENAME=hogehogeとか用意してあると,
$ gcc file.c -D$SITENAME
とか,makeなら
CPPFLAGS=-D$(SITENAME)