shell脚本

提示 : 脚本名称如果自己觉得不会记,可以自己改

1.  xcall 当我们对集群中每个节点都执行相同的操作命令时,逐个对节点进行远程连接并执行指令的时间成 本过于高昂

可以在指定一个节点对集群中所有节点(包括自身)都能够免密登陆的前提下,通过编写xcall脚本 循环使用ssh为每个节点远程发送执行命令,以达到在所有主机上同时执行相同的Shell命令的效果

编写步骤:

使用root账户进入系统环境变量中存在的自定义本地脚本执行目录

cd /usr/local/bin

touch xcall

vim xcall

#xcall脚本代码

#!/bin/bash
pcount=$#
if((pcount==0));then
        echo "no args";
        exit;
fi

#当前节点执行命令
$@
#集群中其他节点执命令
for((host=2; host<=4;host++)) ;
        do
                echo ----------- node$host -----------
                ssh node$host $@
        done
 

  • 为xcall脚本设置所有账户都具备修改和执行权限(修改权限非必须,只是方便维护)

chmod 777 xcall

2. xsync脚本

cp 和 rsync 区别:

         rsync支持符号链接(软链接),而scp不支持 用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复 制过去

rsync

        安装命令(每个节点都需要安装) : yum  -y install rsync

        语法: rsync [-ravl] 文件绝对路径  [用户名@节点:]文件需要存放的文件

选项描述
-r递归文件夹
-a归档
-v显示复制过程
-l拷贝符号连接

xsync

        当我们对集群中每个节点都修改相同文件内容时,逐个对节点进行远程连接并执行指令的时间 成本过于高昂

        可以在指定一个节点对集群中所有节点(包括自身)都能够免密登陆的前提下,通过编写 xsync脚本

        循环使用ssh为每个节点远程同步修改内容,以达到在所有主机上同步文件的效果 编写步骤 使用root账户进入系统环境变量中存在的自定义本地脚本执行目录

编写步骤

        使用root账户进入系统环境变量中存在的自定义本地脚本执行目录

cd /usr/local/bin

touch xsync

        xsync脚本代码

#!/bin/bash

#1 获取输入参数个数,如果没有参数,直接退出

pcount=$# if((pcount==0)); then

        echo no args; exit;

fi

#2 获取文件名称

p1=$1

fname=`basename $p1`

echo fname=$fname

#3 获取上级目录到绝对路径

pdir=`cd -P $(dirname $p1); pwd`

echo pdir=$pdir

#4 获取当前用户名称

user=`whoami`

#5 循环

for((host=102; host=104; host++));

        do        

                echo --------------- node$host ----------------      

                rsync -rvl $pdir/$fname $user@node$host:$pdir

done

为xcall脚本设置所有账户都具备修改和执行权限(修改权限非必须,只是方便维护)

chmod 777 xsync

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值