7.2. DSH – распределённый шелл (Distributed SHell)

На время написания (Май 2003) наиболее последняя версия DSH доступна с http://www.netfort.gr.jp/~dancer/software/downloads/. Больше дополнительной информации о пакете может быть найдено на http://www.netfort.gr.jp/~dancer/software/dsh.html. Последняя доступная для скачивания версия 0.23.6. Вам так же понадобятся libdshconfig-0.20.8.tar.gz и dsh-0.23.5.tar.gz. Начнём с инсталляции libdshconfig:

./configure make make install

Повторите процесс для пакета dsh.

Скажем, у нас есть небольшой кластер с парой узлов. Для того, чтобы сделать жизнь проще, мы хотим набрать команду только один раз, но чтобы она была выполнена на каждом узле. Для этого вы должны создать файл $HOME/.dsh/group/clusterwname, в котором перечислены IP-адреса узлов вашего кластера. Например:

[root@inspon root]# cat ~/.dsh/group/mosix 192.168.10.220 192.168.10.84

Для примера мы выполним ls на каждой из этих машин. Мы задействуем -g для использования групп Mosix (таким образом, вы можете создать подмножества групп с различными конфигурациями).

[root@inspon root]# dsh -r ssh -g mosix ls 192.168.10.84: anaconda-ks.cfg 192.168.10.84: id_rsa.pub 192.168.10.84: install.log 192.168.10.84: install.log.syslog 192.168.10.84: openmosix-kernel-2.4.17-openmosix1.i686.rpm 192.168.10.84: openmosix-tools-0.2.0-1.i386.rpm 192.168.10.220: anaconda-ks.cfg 192.168.10.220: id_dsa.pub 192.168.10.220: id_rsa.pub 192.168.10.220: openmosix-kernel-2.4.17-openmosix1.i686.rpm 192.168.10.220: openmosix-tools-0.2.0-1.i386.rpm 192.168.10.220: oscar-1.2.1rh72 192.168.10.220: oscar-1.2.1rh72.tar.gz

Заметьте, что ни одна из машин не спросила пароля. Это потому что мы установили RSA аутентификацию для различных учётных записей. Если вам нужно выполнить команды с различными параметрами, вам нужно будет или заключить команды в кавычки:

[root@inspon root]# dsh -r ssh -g mosix "uname -a" 192.168.10.84: Linux omosix2.office.be.stone-it.com 2.4.17-openmosix1 #1 Wed May 29 14:32:28 CEST 2002 i686 unknown 192.168.10.220: Linux oscar0 2.4.17-openmosix1 #1 Wed May 29 14:32:28 CEST 2002 i686 unknown

или использовать опцию -c. Оба способа выдают практически то же самое на экран:

[root@inspon root]# dsh -r ssh -g mosix -c -- uname -a 192.168.10.220: Linux oscar0 2.4.17-openmosix1 #1 Wed May 29 14:32:28 CEST 2002 i686 unknown 192.168.10.84: Linux omosix2.office.be.stone-it.com 2.4.17-openmosix1 #1 Wed May 29 14:32:28 CEST 2002 i686 unknown