K8S系列文章之 Shell批处理脚本应用

一、简要说明

1、批处理脚本介绍

  1. 命令批处理脚本:/usr/shell/all.sh
  2. 文件批量分发脚本:/usr/shell/scp.sh

2、批处理命令脚本原理

  1. 读取/usr/shell/hosts文件中的ip列表
  2. 使用$*接收脚本所有参数
  3. for循环遍历hosts文件中的ip地址
  4. 通过ssh host cmd 实现目的ip命令
  5. eval命令判断并打印命令执行结果
  6. for循环遍历完hosts则脚本运行结束

3、批量分发脚本原理

  1. 1和2接收参数文件名和分发路径
  2. for循环遍历hosts文件中的ip地址
  3. 通过scp 1 host:
  4. eval命令判断并打印命令执行结果
  5. for循环遍历完hosts则脚本运行结束

二、批处理命令脚本

1、创建 /usr/shell/ 目录

复制代码
mkdir -p /usr/shell/ && cd /usr/shell/

2、创建批处理脚本并赋权

复制代码
touch /usr/shell/all.sh && chmod 777 /usr/shell/all.sh

3、批处理脚本实现代码

复制代码
vim /usr/shell/all.sh

#!/bin/bash
echo "------start execyting the shell script------"
# awk 读取hosts文件的第一部分ip地址
hosts=$(cat /usr/shell/hosts | awk '{print $1}')
# 传递的指令(参数)
cmd=$*
# for循环读取文件
for host in  ${hosts[*]}
do
    exec="ssh $host $cmd"
    echo $exec
    if eval $exec; then
        echo 'success'
    else
        echo "fail"
    fi
done
echo "----end th executing of the shell script------"

三、批量分发文件脚本

1、创建批量分发脚本并赋权

复制代码
touch /usr/shell/scp.sh && chmod 777 /usr/shell/scp.sh

2、定义批量处理的hosts

这里的hosts是批处理代码从需要读取的hosts,想批处理哪台服务器就写哪个host

复制代码
cat /etc/hosts

vim /usr/shell/hosts

172.18.0.2 hadoop01
172.18.0.3 hadoop02
172.18.0.4 hadoop03

2、批量分发文件脚本实现

复制代码
vim /usr/shell/scp.sh

#!/bin/bash
echo "------start execyting the shell script------"
# awk 读取hosts文件的第一部分ip地址
hosts=$(cat /usr/shell/hosts | awk '{print $1}')
# 传递的第一个参数,文件名称
file=$1
# 传递的第二个参数,目录路径
dir=$2
# for循环读取文件
for host in  ${hosts[*]}
do
    exec="scp $file $host:$dir"
    echo $exec
    if eval $exec; then
        echo 'success'
    else
        echo "fail"
    fi
done
echo "----end th executing of the shell script------"

四、批处理脚本命令

1、批量处理脚本命令

语法格式

/usr/shell/all.sh 命令

语法示例

复制代码
/usr/shell/all.sh date

2、批量分发脚本命令

语法格式

/usr/shell/scp.sh 当前系统需要copy的文件名 所有系统需要copy的目的路径

语法示例

复制代码
/usr/shell/scp.sh /home/test.txt /hom
相关推荐
闲云自留地5 小时前
K8s 的记忆大脑!ETCD 集群部署、etcdctl 命令与备份恢复全通关
容器·kubernetes·etcd
weirong8 小时前
Operator 上生产前补的 6 件事,和 5 件我明确不做的
kubernetes
孙克旭_9 小时前
k8s基础组件与创建资源
运维·docker·容器·kubernetes
孙克旭_10 小时前
云原生基础之Containerd容器运行时
运维·云原生
分布式存储与RustFS10 小时前
RustFS 自建对象存储实战目录:110 篇按场景分类(持续更新)
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
java_logo1 天前
Docker 部署 EmulatorJS:轻松搭建浏览器复古游戏平台
游戏·docker·容器·复古游戏·轩辕镜像·emulatorjs·红白机
吴声子夜歌1 天前
Kubernetes权威指南——网络原理(一)
网络·容器·kubernetes
方便面不加香菜1 天前
Docker Container --容器及容器的操作案例详解
运维·docker·容器
无言听风雨丶1 天前
Kubernetes Service Mesh 与 mTLS 实战:从网络可达走向零信任服务通信
网络·kubernetes·service_mesh
weirong1 天前
跟原生 HPA 做对照压测:五轮里前四轮全废,最后一个结论也被我自己降级
kubernetes