目 录CONTENT

文章目录

Linux脚本记录

筱晶哥哥
2023-08-13 / 0 评论 / 0 点赞 / 36 阅读 / 3966 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2024-03-23,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

记录个人学习中使用的Linux脚本,备忘!

集群分发脚本

循环复制文件到所有节点的相同目录下

rsync命令原始拷贝:

rsync -av /opt/module root@hadoop103:/opt/

期望脚本:

xsync [要同步的文件名称]

① 在用户的家目录/home/itjing下创建bin文件夹

# 说明:在/home/itjing/bin这个目录下存放的脚本,itjing用户可以在系统任何地方直接执行。
[itjing@hadoop102 ~]$ mkdir bin

② 在/home/itjing/bin目录下创建xsync文件,以便全局调用

[itjing@hadoop102 ~]$ cd /home/itjing/bin

[itjing@hadoop102 bin]$ vim xsync

在该文件中编写如下代码

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

#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
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

③ 修改脚本xsync具有执行权限

[itjing@hadoop102 bin]$ chmod +x xsync

④ 测试脚本

# 把自己分发出去
[itjing@hadoop102 bin]$ xsync xsync

集群所有进程查看脚本

在 /home/itjing/bin 目录下创建脚本 xcall.sh

vim xcall.sh

在脚本中编写如下内容

#! /bin/bash
for i in hadoop102 hadoop103 hadoop104
do
echo --------- $i ----------
ssh $i "$*"
done

修改脚本执行权限

chmod 777 xcall.sh

启动脚本

xcall.sh jps
0

评论区