灰度空间

笃学格致,厚德重行

linux跨机器操作服务

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

阅读更多
文章标签: linux shell
个人分类: linux ActiveMQ
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭