首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux-xsync分发脚本

Linux-xsync分发脚本

作者头像
全栈程序员站长
发布2022-08-28 13:36:28
发布2022-08-28 13:36:28
78800
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

xsync 集群分发脚本(首先已经设置免密登录) (1)需求:循环复制文件到所有节点的相同目录下 (2)需求分析: (a)rsync 命令原始拷贝:

代码语言:javascript
代码运行次数:0
运行
复制
rsync -av /opt/module atguigu@hadoop103:/opt/

(b)期望脚本: xsync 要同步的文件名称 (c)期望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径)

代码语言:javascript
代码运行次数:0
运行
复制
[atguigu@hadoop102 ~]$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/atguigu/.local/bin:/home/atguigu/bin:/opt/module/jdk1.8.0_212/bin

(3)脚本实现 (a)在/home/atguigu/bin 目录下创建 xsync 文件

代码语言:javascript
代码运行次数:0
运行
复制
[atguigu@hadoop102 opt]$ cd /home/atguigu
[atguigu@hadoop102 ~]$ mkdir bin
[atguigu@hadoop102 ~]$ cd bin
[atguigu@hadoop102 bin]$ vim xsync

在该文件中编写如下代码

代码语言:javascript
代码运行次数:0
运行
复制
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
 echo Not Enough Arguement!
 exit;
fi
#2. 遍历集群所有机器
for host in cdh1 cdh2 cdh3
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

(b)修改脚本 xsync 具有执行权限

代码语言:javascript
代码运行次数:0
运行
复制
[atguigu@hadoop102 bin]$ chmod +x xsync

(c)测试脚本

代码语言:javascript
代码运行次数:0
运行
复制
[atguigu@hadoop102 ~]$ xsync /home/atguigu/bin

(d)将脚本复制到/bin 中,以便全局调用

代码语言:javascript
代码运行次数:0
运行
复制
[atguigu@hadoop102 bin]$ sudo cp xsync /bin/

(e)同步环境变量配置(root 所有者)

代码语言:javascript
代码运行次数:0
运行
复制
[atguigu@hadoop102 ~]$ sudo ./bin/xsync 
/etc/profile.d/my_env.sh

注意:如果用了 sudo,那么 xsync 一定要给它的路径补全。 让环境变量生效

代码语言:javascript
代码运行次数:0
运行
复制
[atguigu@hadoop103 bin]$ source /etc/profile
[atguigu@hadoop104 opt]$ source /etc/profile

测试:

代码语言:javascript
代码运行次数:0
运行
复制
 xsync zookeeper-3.4.14

这样就将zookeeper的目录传到cdh1 cdh2 cdh3三个节点中

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/146045.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档