dsh:分散shell
dshは簡単に言えばsshで複数の機器を同時に制御できる.1台のマシンにインストールし、制御が必要なマシンに認証の公開鍵を追加して信頼を確立し、dshがインストールされたマシンにdshでコマンドを実行すると、構成されたマシンリストですべて実行し、結果を戻します
dshのプロファイルでマシンをグループ化し、dshのオプションでそのグループを操作するように指定します.
wwwグループに入力されたすべてのマシンに対してwコマンドが実行されます.
実行コマンドは並列に実行することもシリアルに実行することもできます.パラレル実行はすべてのマシンにコマンドを同時に送信し,シリアル実行は1つのマシンの実行である.前の機械が実行されてから次の機械を実行します.
この命令は複数の機械を守る学生に役立つはずだ.いつもforサイクルを使う必要はありません.
公式サイト:http://www.netfort.gr.jp/~dancer/software/dsh.html.en
制御が必要なサーバにssh認証情報を追加する方法:
scp ~/.ssh/id_rsa.pub root@server:/root/.ssh/authorized_keys
ホストのリストを作成するには、次の手順に従います.
vi webapp.txt192.168.56.11192.168.56.12192.168.56.13192.168.56.14
SSH信頼関係の構成
mkdir ~/.sshssh-keygen -t rsascp ~/.ssh/id_rsa.pub 192.168.56.11:/root/.ssh/authorized_keysscp ~/.ssh/id_rsa.pub 192.168.56.12:/root/.ssh/authorized_keysscp ~/.ssh/id_rsa.pub 192.168.56.13:/root/.ssh/authorized_keysscp ~/.ssh/id_rsa.pub 192.168.56.14:/root/.ssh/authorized_keys
またはスクリプトによる一括コピー
ip=192.168.56.for i in $(seq 11 14)dossh $ip$i -C mkdir/root/.sshscp ~/.ssh/id_rsa.pub $ip$i:/root/.ssh/authorized_keysdone
あるいはファイルのステップコピーを読み込むことで
for i in `cat webapp.txt`dossh $i -C mkdir/root/.sshscp ~/.ssh/id_rsa.pub $i:/root/.ssh/authorized_keysdone
dsh一括管理linuxサーバ
一、dshのインストール
mkdir dsh
cd dsh
wget
http://www.netfort.gr.jp/~dancer/software/downloads/libdshconfig-0.20.9.tar.gz
tar zxvf libdshconfig-0.20.9.tar.gz
cd libdshconfig-0.20.9
./configure && make
sudo make install
cd ..
wget
http://www.netfort.gr.jp/~dancer/software/downloads/dsh-0.25.9.tar.gz
tar zxvf dsh-0.25.9.tar.gz
cd dsh-0.25.9
./configure &&
make
sudo make install
ln -s/usr/local/lib/libdshconfig.so.1/lib/
#reload lib path
/
sbin
/
ldconfig
[root@localhost ~]# which dsh
/usr/local/bin/dsh
二、用法紹介:
[root@china-channel ~]# dsh –-help
Distributed Shell/Dancer’s shell version 0.25.9
Copyright 2001-2005 Junichi Uekawa,
distributed under the terms and conditions of GPL version 2
-v–verbose Verbose output詳細モード出力
-q-quiet Quietサイレントモード出力
M–show-machine-names Prepend the host name on output制御ホストのhostnameを表示
-H-hide-machine-names Do not prepend host name on outputホスト名は表示されません(default)
-i –duplicate-input Duplicate input given to dsh
-b –bufsize Change buffer size used in input duplication
-m–machine[machinename]Execute on machineホスト名
-n –num-topology How to divide the machines
-a-all Execute on all machinesホストリスト、デフォルトリストは/root/.dsh/machines.list
-g–group[groupname]Execute on group memberはホスト名グループを指定し、ホスト名グループは/root/.dsh/group/
-f–file[file]Use the file as list of machinesホストリストを選択
-r–remoteshell[shellname]Execute using shell(rsh/ssh)リモートツールを指定します.デフォルトはrshです.
-o –remoteshellopt [option] Option to give to shell
-h –help Give out this message
-w-wait-shell Sequentially execute shell指定順序で実行、デフォルトはパラレル
-c –concurrent-shell Execute shell concurrently
-F –forklimit [fork limit] Concurrent with limit on number
-V –version Give out version information
三、制御のホストリストを作成する
[root@china-channel ~]# cat/root/.dsh/machines.list
218.85.1.2
218.85.1.3
[root@china-channel ~]# cat/root/.dsh/group/umail
218.85.1.2
218.85.1.3
四、ssh無パスワードログインの構成
[root@china-channel ~]# ssh-keygen -t rsa
車に3回戻る.
/root/.sshディレクトリの下でid_を生成rsa,id_rsa.pub
id_をrsa.pubは被制御機の/root/にコピーする.ssh/ディレクトリの下:
[root@mail176 .ssh]#mv id_rsa.pub authorized_keys
[root@mail176 .ssh]#chmod 600 authorized_keys
複数の異なるコントローラがある場合はcat id_rsa.pub >>authorized_keys追加の形式
五、応用例:
[root@china-channel AIMstor]# dsh -M -r ssh -a -- free
218.85.1.2: total used free shared buffers cached
218.85.1.2: Mem: 8168272 8138584 29688 0 197176 3516140
218.85.1.2: -/+ buffers/cache: 4425268 3743004
218.85.1.2: Swap: 16386260 1011732 15374528
218.85.1.3: total used free shared buffers cached
218.85.1.3: Mem: 8168272 8103304 64968 0 543324 3085280
218.85.1.3: -/+ buffers/cache: 4474700 3693572
218.85.1.3: Swap: 16386260 1039780 15346480
[root@china-channel AIMstor]# dsh -M -r ssh -a -- free|grep/cache
218.85.1.2: -/+ buffers/cache: 4423528 3744744
218.85.1.3: -/+ buffers/cache: 4462684 3705588
[root@china-channel AIMstor]# dsh -M -r ssh -a -- df -h
218.85.1.2: Filesystem Size Used Avail Use% Mounted on
218.85.1.2:/dev/sda3 48G 31G 15G 67%/
218.85.1.2:/dev/sda6 792G 377G 375G 51%/bk
218.85.1.2:/dev/sda2 48G 4.7G 41G 11%/opt
218.85.1.2:/dev/sda1 251M 17M 222M 7%/boot
218.85.1.2:/dev/sdb1 2.7T 1008G 1.6T 39%/mail
218.85.1.2: tmpfs 3.9G 0 3.9G 0%/dev/shm
218.85.1.3: Filesystem Size Used Avail Use% Mounted on
218.85.1.3:/dev/sda3 48G 35G 11G 77%/
218.85.1.3:/dev/sda6 792G 215G 537G 29%/bk
218.85.1.3:/dev/sda2 48G 5.7G 40G 13%/opt
218.85.1.3:/dev/sdb1 2.7T 812G 1.8T 32%/mail
218.85.1.3:/dev/sda1 251M 17M 222M 7%/boot
218.85.1.3: tmpfs 3.9G 0 3.9G 0%/dev/shm
注意:
dsh-M-r ssh-a--実行する必要があるコマンドが複雑な場合は、後のすべてのコマンドを単一引用符で引き起こします.たとえば、次のようにします.
dsh -M -r ssh -a -- 'echo "abc">>/root/test.txt'
------------------------------------------------------
dshのインストール使用
dshは、複数のホストを容易に管理し、書き込みサイクルの手間を省くことができ、いくつかのクラスタ管理ツールがdshを使用する必要があります.
centOS 5でのインストール
スクリプトを直接実行
#!/bin/bash
# Build and install the library first wget http://www.netfort.gr.jp/~dancer/software/downloads/libdshconfig-0.20.13.tar.gz tar xzvf libdshconfig-0.20.13.tar.gzcd libshconfig-0.20.13./configure $ makesudo make install# Then build and install the utility cd ..wget http://www.netfort.gr.jp/~dancer/software/downloads/dsh-0.25.9.tar.gz tar xzvf dsh-0.25.9.tar.gzcd dsh-0.25.9./configuremake sudo make install
#reload lib path/sbin/ldconfig
vi ~/.dsh/group/temp
server1
server2
server3
dsh -g temp -M -r ssh -- df -h
-g作成group-aすべてのホストはデフォルトで~/のみ使用.dsh/machines.list
Mはホスト名をリストします-rは接続方法を指定します
dshのプロファイルでマシンをグループ化し、dshのオプションでそのグループを操作するように指定します.
dsh -g www -c “w”
wwwグループに入力されたすべてのマシンに対してwコマンドが実行されます.
実行コマンドは並列に実行することもシリアルに実行することもできます.パラレル実行はすべてのマシンにコマンドを同時に送信し,シリアル実行は1つのマシンの実行である.前の機械が実行されてから次の機械を実行します.
この命令は複数の機械を守る学生に役立つはずだ.いつもforサイクルを使う必要はありません.
公式サイト:http://www.netfort.gr.jp/~dancer/software/dsh.html.en
制御が必要なサーバにssh認証情報を追加する方法:
scp ~/.ssh/id_rsa.pub root@server:/root/.ssh/authorized_keys
ホストのリストを作成するには、次の手順に従います.
vi webapp.txt192.168.56.11192.168.56.12192.168.56.13192.168.56.14
SSH信頼関係の構成
mkdir ~/.sshssh-keygen -t rsascp ~/.ssh/id_rsa.pub 192.168.56.11:/root/.ssh/authorized_keysscp ~/.ssh/id_rsa.pub 192.168.56.12:/root/.ssh/authorized_keysscp ~/.ssh/id_rsa.pub 192.168.56.13:/root/.ssh/authorized_keysscp ~/.ssh/id_rsa.pub 192.168.56.14:/root/.ssh/authorized_keys
またはスクリプトによる一括コピー
ip=192.168.56.for i in $(seq 11 14)dossh $ip$i -C mkdir/root/.sshscp ~/.ssh/id_rsa.pub $ip$i:/root/.ssh/authorized_keysdone
あるいはファイルのステップコピーを読み込むことで
for i in `cat webapp.txt`dossh $i -C mkdir/root/.sshscp ~/.ssh/id_rsa.pub $i:/root/.ssh/authorized_keysdone
dsh一括管理linuxサーバ
一、dshのインストール
mkdir dsh
cd dsh
wget
http://www.netfort.gr.jp/~dancer/software/downloads/libdshconfig-0.20.9.tar.gz
tar zxvf libdshconfig-0.20.9.tar.gz
cd libdshconfig-0.20.9
./configure && make
sudo make install
cd ..
wget
http://www.netfort.gr.jp/~dancer/software/downloads/dsh-0.25.9.tar.gz
tar zxvf dsh-0.25.9.tar.gz
cd dsh-0.25.9
./configure &&
make
sudo make install
ln -s/usr/local/lib/libdshconfig.so.1/lib/
#reload lib path
/
sbin
/
ldconfig
[root@localhost ~]# which dsh
/usr/local/bin/dsh
二、用法紹介:
[root@china-channel ~]# dsh –-help
Distributed Shell/Dancer’s shell version 0.25.9
Copyright 2001-2005 Junichi Uekawa,
distributed under the terms and conditions of GPL version 2
-v–verbose Verbose output詳細モード出力
-q-quiet Quietサイレントモード出力
M–show-machine-names Prepend the host name on output制御ホストのhostnameを表示
-H-hide-machine-names Do not prepend host name on outputホスト名は表示されません(default)
-i –duplicate-input Duplicate input given to dsh
-b –bufsize Change buffer size used in input duplication
-m–machine[machinename]Execute on machineホスト名
-n –num-topology How to divide the machines
-a-all Execute on all machinesホストリスト、デフォルトリストは/root/.dsh/machines.list
-g–group[groupname]Execute on group memberはホスト名グループを指定し、ホスト名グループは/root/.dsh/group/
-f–file[file]Use the file as list of machinesホストリストを選択
-r–remoteshell[shellname]Execute using shell(rsh/ssh)リモートツールを指定します.デフォルトはrshです.
-o –remoteshellopt [option] Option to give to shell
-h –help Give out this message
-w-wait-shell Sequentially execute shell指定順序で実行、デフォルトはパラレル
-c –concurrent-shell Execute shell concurrently
-F –forklimit [fork limit] Concurrent with limit on number
-V –version Give out version information
三、制御のホストリストを作成する
[root@china-channel ~]# cat/root/.dsh/machines.list
218.85.1.2
218.85.1.3
[root@china-channel ~]# cat/root/.dsh/group/umail
218.85.1.2
218.85.1.3
四、ssh無パスワードログインの構成
[root@china-channel ~]# ssh-keygen -t rsa
車に3回戻る.
/root/.sshディレクトリの下でid_を生成rsa,id_rsa.pub
id_をrsa.pubは被制御機の/root/にコピーする.ssh/ディレクトリの下:
[root@mail176 .ssh]#mv id_rsa.pub authorized_keys
[root@mail176 .ssh]#chmod 600 authorized_keys
複数の異なるコントローラがある場合はcat id_rsa.pub >>authorized_keys追加の形式
五、応用例:
[root@china-channel AIMstor]# dsh -M -r ssh -a -- free
218.85.1.2: total used free shared buffers cached
218.85.1.2: Mem: 8168272 8138584 29688 0 197176 3516140
218.85.1.2: -/+ buffers/cache: 4425268 3743004
218.85.1.2: Swap: 16386260 1011732 15374528
218.85.1.3: total used free shared buffers cached
218.85.1.3: Mem: 8168272 8103304 64968 0 543324 3085280
218.85.1.3: -/+ buffers/cache: 4474700 3693572
218.85.1.3: Swap: 16386260 1039780 15346480
[root@china-channel AIMstor]# dsh -M -r ssh -a -- free|grep/cache
218.85.1.2: -/+ buffers/cache: 4423528 3744744
218.85.1.3: -/+ buffers/cache: 4462684 3705588
[root@china-channel AIMstor]# dsh -M -r ssh -a -- df -h
218.85.1.2: Filesystem Size Used Avail Use% Mounted on
218.85.1.2:/dev/sda3 48G 31G 15G 67%/
218.85.1.2:/dev/sda6 792G 377G 375G 51%/bk
218.85.1.2:/dev/sda2 48G 4.7G 41G 11%/opt
218.85.1.2:/dev/sda1 251M 17M 222M 7%/boot
218.85.1.2:/dev/sdb1 2.7T 1008G 1.6T 39%/mail
218.85.1.2: tmpfs 3.9G 0 3.9G 0%/dev/shm
218.85.1.3: Filesystem Size Used Avail Use% Mounted on
218.85.1.3:/dev/sda3 48G 35G 11G 77%/
218.85.1.3:/dev/sda6 792G 215G 537G 29%/bk
218.85.1.3:/dev/sda2 48G 5.7G 40G 13%/opt
218.85.1.3:/dev/sdb1 2.7T 812G 1.8T 32%/mail
218.85.1.3:/dev/sda1 251M 17M 222M 7%/boot
218.85.1.3: tmpfs 3.9G 0 3.9G 0%/dev/shm
注意:
dsh-M-r ssh-a--実行する必要があるコマンドが複雑な場合は、後のすべてのコマンドを単一引用符で引き起こします.たとえば、次のようにします.
dsh -M -r ssh -a -- 'echo "abc">>/root/test.txt'
------------------------------------------------------
dshのインストール使用
dshは、複数のホストを容易に管理し、書き込みサイクルの手間を省くことができ、いくつかのクラスタ管理ツールがdshを使用する必要があります.
centOS 5でのインストール
スクリプトを直接実行
#!/bin/bash
# Build and install the library first wget http://www.netfort.gr.jp/~dancer/software/downloads/libdshconfig-0.20.13.tar.gz tar xzvf libdshconfig-0.20.13.tar.gzcd libshconfig-0.20.13./configure $ makesudo make install# Then build and install the utility cd ..wget http://www.netfort.gr.jp/~dancer/software/downloads/dsh-0.25.9.tar.gz tar xzvf dsh-0.25.9.tar.gzcd dsh-0.25.9./configuremake sudo make install
#reload lib path/sbin/ldconfig
vi ~/.dsh/group/temp
server1
server2
server3
:
dsh -g temp -M -r ssh -- df -h
-g作成group-aすべてのホストはデフォルトで~/のみ使用.dsh/machines.list
Mはホスト名をリストします-rは接続方法を指定します