在学习Kafka集群启停脚本中,需要写一个kf.sh脚本,但是此前我的环境中没有xcall,xsync等脚本。因此我查询了一些博客,最后解决了问题。

建议先创建xsync的脚本,之后再创建xcall脚本。

【创建xsync脚本】

第一步、在/usr/local/bin目录下 创建xsync文件

第二步、yum install rsync -y(三个节点都需要安装)

第三步、编辑xsync脚本

vim xsync

#!/bin/bash

#1. 判断参数个数
if [ $# -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi

#2. 遍历集群所有机器
for host in node01 node02 node03
do
    echo ====================  $host  ====================
    #3. 遍历所有目录,挨个发送

    for file in $@
    do
        #4. 判断文件是否存在
        if [ -e $file ]
            then
                #5. 获取父目录
                pdir=$(cd -P $(dirname $file); pwd)

                #6. 获取当前文件的名称
                fname=$(basename $file)
                ssh $host "mkdir -p $pdir"
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists!
        fi
    done
done

 第四步、修改权限

chmod 777 xsync

第五步、完成

【创建xcall脚本查看jps命令】

第一步、在/usr/local/bin目录下 创建xcall文件

vim xcall

#!/bin/bash

for host in node01 node02 node03
do
        echo =============== $host ===============
        ssh $host jps 
done

第二步、修改权限

chmod 777 xcall

第三步、添加软连接(这步很重要!!)

ln -s /export/servers/jdk1.8.0_141/bin/jps jps

第四步、集群分发

[root@node01 local]# xsync xcall jps

第五步、测试

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐