集群管理脚本


虚拟机集群管理脚本

文章目录

一、远程调用脚本(remote_call.sh)

如果有传命令参数,则执行该命令;如果没有传命令参数,则不执行。

shell 复制代码
#!/bin/bash

cmd=$1
if [ ! $cmd ];then
        cmd="jps"
fi

# 提取集群免密通信的虚拟机主机名
hosts=`sed -n '3,$p' /etc/hosts | awk '{print $2}'`

# 遍历所有主机
for host in $hosts;do
        echo "-------- $host --------"
        # 此处使用"$cmd"的原因是避免将命令中的空格识别为多条命令
        ssh root@$host "$cmd"
done
二、远程复制目录脚本(remote_copy.sh)

首先,要验证待复制的目录在本机是否存在;然后需要从/etc/hosts文件中获取除去当前主机名的其他主机名,并且对每个主机进行循环操作,先判断父目录是否存在,再进行递归复制。

shell 复制代码
#!/bin/bash

path=$1 # 本机目录

# 验证路径是否存在
if [ ! -e $path ];then
        echo "目录 $path 不存在,无法拷贝"
        exit 0
fi

# 提取集群中排除当前主机名之外的所有主机名
# 只需验证父目录是否存在即可
me=`hostname`
parent=`dirname $path`
hosts=`sed -n '3,$p' /etc/hosts | awk '{print $2}' | grep -v "$me"`

for host in $hosts;do
        scp -r $path root@$host:$parent
        echo "-------- 拷贝 $path 到 $host 成功 --------"
done
相关推荐
源远流长jerry6 小时前
TCP 三次握手深度解析:从内核源码到生产实践
linux·运维·网络·网络协议·tcp/ip
黄筱筱筱筱筱筱筱7 小时前
RHCE---web服务器①
linux·运维·服务器
流浪0017 小时前
Linux基础篇(三)轻松拿捏入门级指令
linux·运维·服务器
Waay7 小时前
Linux Shell 知识点考评(三):awk文本分析(附答案)
linux·服务器·编辑器
xlq223227 小时前
53.tcp socket
linux·服务器·开发语言·网络·网络协议·tcp/ip
Irissgwe8 小时前
redis之集群(Cluster)
数据库·redis·缓存·集群·redis集群·数据分片算法
Shingmc38 小时前
【Linux】传输层协议UDP
linux·网络·udp
@王先生18 小时前
【K8S-ETCD初始化三节点集群】
前端·chrome·k8s·etcd·集群
Mortalbreeze8 小时前
深度理解进程 ---- 进程优先级、进程切换、进程调度算法
linux·运维·服务器
十年编程老舅8 小时前
深度长文|Linux 图形与显示架构
linux·运维·后端·架构·内核·linux内核·通信机制