linux跨机器操作服务
最近在多台机器部署了mq服务,为了写个shell脚本达到跨机器一键启停所有mq的目的。需要解决各机器间自动登录权限的问题。我采用的方法是利用sshpass
操作流程:
下载sshpass-1.06.tar.gz,地址 https://sourceforge.net/projects/sshpass/files/
或者 https://download.csdn.net/download/renhuan28/10479363
下载后解压安装
tar -zxvf sshpass-1.06.tar.gz
cd sshpass-1.06
#在你的系统上测试存在的特性, ./configure --prefix=/软件要安装的路径
#但是我们也可以直接./configure而不指定路径,通常通过从源码包编译安装的软件默认路径都是/usr/local/
./configure
#编译程序
make
#检查是否编译成功,返回0则是成功
echo $
#安装文件
make install
针对个人amq用户使用
在amq根目录下建立 .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
#引向sshpass命令所在文件夹
PATH=$PATH:/data/databus/sshpass/bin
export PATH
这样便可以在此用户下使用sshpass了
主要代码 do.sh
do{
password=XXX;
hosts=`sed -n '/^[^#]/p' hostlist`
for host in $hosts
do
sshpass -p $password ssh $host "$@" -o StrictHostKeyChecking=no
done
return 0
}
if [ $# -lt 1 ]
then
echo "$0 cmd"
exit
fi
do "$@"
echo "return from do"
do.sh ./${activemqbin}/activemq start