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三个节点中

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Oracle锁表查询和解锁方法

    Oracle锁表查询和解锁方法我们这里一般用的PL/SQL,总是无意间把表锁住,所以我今天就整理了一下简单的解锁和查询锁表的方法;一、首先PL/SQL要以管理员的账号(system/admin等)登录,管理员的账号和密码根据个人设置而来,连接为一般选择Normal,也可选择SYSDBA;二、相关SQL语句:–以下几个为相关表SELECT*FROMv$lock;SELECT*FROMv$sqlarea;S…

  • 最新服务器节点,服务器emule必备知识(更新服务器列表与kad节点文件)

    最新服务器节点,服务器emule必备知识(更新服务器列表与kad节点文件)emule必备知识(更新服务器列表与kad节点文件)emule必备知识emule是通过ED2K网络和KAD网络寻找、连接其他emule客户端的所以服务器列表和KAD节点文件是emule的必需文件。有些新手由于下载官方原版emule压缩包或其他未集成这些必需文件的emule压缩包从而出现“连接不上ED2K与KAD”问题。所以学会下载更新服务器列表与KAD节点文件是使用emule的第一步以下方法…

  • delphi有办法旋转或翻转图片么?

    delphi有办法旋转或翻转图片么?

  • JVM-内存结构「建议收藏」

    JVM-内存结构「建议收藏」分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.netJVM在执行程序的过程中会将内存划分为不同的数据区域,请看下图。如果理解了上图,JVM的内存结构基本上掌握了一半。从图中可以得到如下信息。第一,JVM分为五个区域:虚拟机栈、本地方法栈、方法区、堆、程序计数器。第二,JVM五个区中虚拟机栈、本地方法栈、程序计数器为线程私有,方法区和堆为线程共享区。图中已经用颜色区分。第三,JVM不同区域占用的内

  • redis安装部署linux集群_redis安装配置

    redis安装部署linux集群_redis安装配置一、下载安装包首先下载redis安装包,下载地址wgethttps://download.redis.io/releases/redis-6.2.0.tar.gztzr-zxvfredis-6.2.0.tar.gz二、编译安装1、解压redis安装包,将redis安装至指定目录。makeinstallprefix=/user/local/redis/若编译错误,可以使用makeclean清空编译结果2、将解压目录下的redis.conf文件拷贝至安装目录的bin文件夹下cp

  • 千百撸

    千百撸千百撸(黄网)

发表回复

您的电子邮箱地址不会被公开。

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