Linux-xsync分发脚本

Linux-xsync分发脚本xsync集群分发脚本(1)需求:循环复制文件到所有节点的相同目录下(2)需求分析:(a)rsync命令原始拷贝:rsync-av/opt/moduleatguigu@hadoop103:/opt/(b)期望脚本:xsync要同步的文件名称(c)期望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径)[atguigu@hadoop102~]$echo$PATH/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/ho

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

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

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

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

[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 文件

[atguigu@hadoop102 opt]$ cd /home/atguigu
[atguigu@hadoop102 ~]$ mkdir bin
[atguigu@hadoop102 ~]$ cd bin
[atguigu@hadoop102 bin]$ vim xsync

在该文件中编写如下代码

#!/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 具有执行权限

[atguigu@hadoop102 bin]$ chmod +x xsync

(c)测试脚本

[atguigu@hadoop102 ~]$ xsync /home/atguigu/bin

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

[atguigu@hadoop102 bin]$ sudo cp xsync /bin/

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

[atguigu@hadoop102 ~]$ sudo ./bin/xsync 
/etc/profile.d/my_env.sh

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

[atguigu@hadoop103 bin]$ source /etc/profile
[atguigu@hadoop104 opt]$ source /etc/profile

测试:

 xsync zookeeper-3.4.14

在这里插入图片描述
这样就将zookeeper的目录传到cdh1 cdh2 cdh3三个节点中

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • phpstorm激活码2021[免费获取]

    (phpstorm激活码2021)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/ide…

    2022年3月21日
    57
  • 最新kali之dirbuster

    最新kali之dirbuster描述 目录扫描工具 DirBuster 支持全部的 Web 目录扫描方式 它既支持网页爬虫方式扫描 也支持基于字典暴力扫描 还支持纯暴力扫描 该工具使用 Java 语言编写 提供命令行 Headless 和图形界面 GUI 两种模式 其中 图形界面模式功能更为强大 用户不仅可以指定纯暴力扫描的字符规则 还可以设置以 URL 模糊方式构建网页路径 同时 用户还对网页解析方式进行各种定制 提高网址解析效率 选项 h 显示帮助信息 H 以无头模式 无 GUI 启动 DirBuster 报告将在退出时自动保存

    2025年11月29日
    3
  • PO模式深入封装

    PO模式深入封装目标1.能够采用继承的思想对PO模式进行深入的封装1.V6版本把共同操作提取封装到父类中,子类直接调用父类的方法,避免代码冗余1.对象库层-基类,把定位元素的方法定义在基类中2.操作层-基类,把对元素执行输入操作的方法定义在基类中1.1示例代码#base_page.pyfrompo.utilsimportDriverUtilcla…

    2022年6月11日
    48
  • pycharm使用技巧及常用快捷键_单元格设置的快捷键是什么

    pycharm使用技巧及常用快捷键_单元格设置的快捷键是什么1.下载安装PyCharm官方下载地址:https://www.jetbrains.com/pycharm/download/index.html#section=windows安装完成后在弹出的界面中选择新建一个工程:2.首次使用首次使用需要配置一下控制台,才能正常调试python点击灰色的倒三角,选择“EditConfigur…

    2022年8月27日
    5
  • awakeFromNib小总结

    awakeFromNib小总结

    2021年12月31日
    49
  • 数组初始化的4种方式「建议收藏」

    数组初始化的4种方式「建议收藏」1.直接给每个元素赋值intarray[4]={1,2,3,4};2.给一部分赋值,后面的全部为0intarray[4]={1,2};3.由赋值参数个数决定数组的个数intarray[]={1,2};4.数组元素的值是随机分配的intarray[4]={};当初始化参数时,推荐使用intarray[4]={0};voidPrint(i…

    2022年7月18日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号