dsh的安装可以参考网上的文档
但是有几个地方网上的安装文档并不是很详细
1、编译安装的时候需要依赖包
glibc-headers gcc-c++
2、安装完libdshconfig后
如果是32位系统
ln -s /usr/local/lib/libdshconfig.so.1 /lib/
如果是64位系统
ln -s /usr/local/lib/libdshconfig.so.1 /lib64/
3、控制组的编写 文中会讲到
安装完dsh之后
dsh --help
-v --verbose Verbose output
-q --quiet Quiet
-M --show-machine-names Prepend the host name on output
-H --hide-machine-names Do not prepend host name on output
-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
-g --group [groupname] Execute on group member
-f --file [file] Use the file as list of machines
-r --remoteshell [shellname] Execute using shell (rsh/ssh)
-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
如何实现同网段MySQL一键启动呢?
首先需要编写控制的主机列表
在新安装的dsh是没有/root/.dsh/*这些文件的
需要在/usr/local/etc/下创建group文件
然后在group里面编写控制组
执行命令后会产生/root/.dsh/*的文件
如果MySQL的启动方式是service mysql start的话可以直接
dsh -r ssh -g 控制组文件名 'service mysql start'
但是如果是 mysqld_safe的方式启动的话就比较麻烦
需要在各个节点创建一个mysql的启动脚本
然后可以dsh -r ssh -g 控制组文件名 'bash 启动脚本'
但是 mysqld_safe &的话需要人工去敲下回车才能跳到shell里面
这样就影响到其他的ip去启动MySQL
所以把MySQL启动的过程隐藏 把启动脚本改为
mysqld_safe &>/dev/null &
这样就可以以一键启动同网段内的所有MySQL实例。
随后可以通过监控查看一下MySQL的启动详情
如果没有 可以选择EasyDB