Linux集群分发脚本xsync[通俗易懂]

Linux集群分发脚本xsync[通俗易懂]Linux集群分发脚本xsync1.scp(securecopy)安全拷贝2.rsync远程同步工具3.xsync集群分发脚本4.免密登陆1.scp(securecopy)安全拷贝1)scp定义:scp可以实现服务器与服务器之间的数据拷贝(fromserver1toserver2)2)基本语法scp-r$pdir/$fname…

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

1.基础拷贝工具


1)安全拷贝:scp(secure copy)


1)scp定义:

scp可以实现服务器与服务器之间的数据拷贝(from server1 to server2)

2)基本语法

scp    -r          $pdir/$fname              $user@hadoop$host:$pdir/$fname
命令   递归     要拷贝的文件路径/名称    		目的用户@主机:目的路径/名称

3)案例实操

a)在hadoop101上,将hadoop101中/opt/module目录下的软件拷贝到hadoop102上:

[zxy@hadoop101 /]$ scp -r /opt/module  root@hadoop102:/opt/module

b)在hadoop103上,将hadoop101服务器上的/opt/module目录下的软件拷贝到hadoop103上:

[zxy@hadoop103 opt]$sudo scp -r zxy@hadoop101:/opt/module root@hadoop103:/opt/module

c)在hadoop103上操作将hadoop101中/opt/module目录下的软件拷贝到hadoop104上。

[zxy@hadoop103 opt]$ scp -r zxy@hadoop101:/opt/module root@hadoop104:/opt/module

注意:拷贝过来的/opt/module目录,别忘了在hadoop102、hadoop103、hadoop104上修改所有文件的[所有者和所有者组]。

sudo chown zxy:zxy -R /opt/module

d)将hadoop101中/etc/profile文件拷贝到hadoop102的/etc/profile上:

[zxy@hadoop101 ~]$ sudo scp /etc/profile root@hadoop102:/etc/profile

e)将hadoop101中/etc/profile文件拷贝到hadoop103的/etc/profile上:

[zxy@hadoop101 ~]$ sudo scp /etc/profile root@hadoop103:/etc/profile

f)将hadoop101中/etc/profile文件拷贝到hadoop104的/etc/profile上:

[zxy@hadoop101 ~]$ sudo scp /etc/profile root@hadoop104:/etc/profile

==注意:==拷贝过来的配置文件别忘了source一下/etc/profile,

2)远程同步工具:rsync


1)rsync是什么?

rsync主要用于备份和镜像,具有速度快、避免复制相同内容和支持符号链接的优点。

2)基本语法

rsync    -av       $pdir/$fname              $user@hadoop$host:$pdir/$fname
命令   选项参数   要拷贝的文件路径/名称    目的用户@主机:目的路径/名称

4)选项参数说明

选项 功能
-a 归档拷贝
-v 显示复制过程

5)案例实操

  • 把hadoop101机器上的/opt/software目录同步到hadoop102服务器的root用户下的/opt/目录
# 需要系统安装有rsync:
[zxy@hadoop102 ~]$ sudo yum install rsync
[zxy@hadoop101 opt]$ rsync -av /opt/software/ root@hadoop102:/opt/software

3)rsync和scp区别

  • 1)用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。
  • 2)scp是把所有文件都复制过去

2.xsync集群分发脚本


1)需求:

  • 循环复制文件到所有节点的相同目录下

2)需求分析:

a)rsync命令原始拷贝:

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

b)期望脚本:

xsync 要同步的文件名称

c)说明:在/home/zxy/bin这个目录下存放的脚本,zxy用户可以在系统任何地方直接执行。

3)脚本实现

需要系统安装有rsync:

[zxy@hadoop102 ~]$ sudo yum install rsync

a)在/home/zxy目录下创建bin目录,并在bin目录下xsync创建文件,文件内容如下:

[zxy@hadoop102 ~]$ mkdir bin
[zxy@hadoop102 ~]$ cd bin/
[zxy@hadoop102 bin]$ touch xsync
[zxy@hadoop102 bin]$ vim xsync

在该文件中编写如下shell脚本:

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if [ $pcount -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi

#2. 遍历集群所有机器
# 也可以采用:
# for host in hadoop{102..104};
for host in hadoop102 hadoop103 hadoop104
do
    echo ====================    $host    ====================
    #3. 遍历所有目录,挨个发送
    for file in $@
    do
        #4 判断文件是否存在
        if [ -e $file ]
        then
            #5. 获取父目录
            pdir=$(cd -P $(dirname $file); pwd)
            echo pdir=$pdir
            
            #6. 获取当前文件的名称
            fname=$(basename $file)
            echo fname=$fname
            
            #7. 通过ssh执行命令:在$host主机上递归创建文件夹(如果存在该文件夹)
            ssh $host "mkdir -p $pdir"
            
			#8. 远程同步文件至$host主机的$USER用户的$pdir文件夹下
            rsync -av $pdir/$fname $USER@$host:$pdir
        else
            echo $file does not exists!
        fi
    done
done

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

[zxy@hadoop102 bin]$ chmod 777 xsync

c)调用脚本形式:xsync 文件名称

[zxy@hadoop102 bin]$ xsync /home/zxy/bin

注意:如果将xsync放到/home/zxy/bin目录下仍然不能实现全局使用,可以将xsync移动到/usr/local/bin目录下。

3.配置集群间免密登陆


1)免密登陆原理

在这里插入图片描述

2)配置免密登陆

a)生成密钥对

[zxy@hadoop102 .ssh]$ ssh-keygen -t rsa 
  • 然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
  • 使用rsa算法生成秘钥对
  • 生成的秘钥对在用户家目录下: /home/user/.ssh

b)将公钥拷贝到要免密登录的目标机器上

[zxy@hadoop102 .ssh]$ ssh-copy-id hadoop102
[zxy@hadoop102 .ssh]$ ssh-copy-id hadoop103
[zxy@hadoop102 .ssh]$ ssh-copy-id hadoop104

c)分别ssh直接登陆hadoop102

ssh hadoop103

3).ssh文件夹功能解释

文件名 功能
known_hosts 记录ssh访问过计算机的公钥(public key)
id_rsa 生成的私钥
id_rsa.pub 生成的公钥
authorized_keys 存放授权过得无密登录服务器公钥

文档解释:

1)ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。

  • 作用:当下次访问相同计算机时,OpenSSH会核对公钥;
  • 如果公钥不同,OpenSSH会发出警告,避免你受到DNS Hijack之类的攻击。
The authenticity of host 'hadoop107 (192.168.8.107)' can't be established. RSA key fingerprint is fa:9c:50:71:70:2b:4f:36:04:f6:7c:7b:0b:2d:ca:3b. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'hadoop107,192.168.8.107' (RSA) to the list of known hosts.

2)ssh-keygen -t rsa

  • 作用:生成~/.ssh/下id_rsa(私钥)、id_rsa.pub(公钥)两个文件

3)ssh-copy-id hadoop102 :会将本机的公钥发送到要访问计算机——存储在hadoop102的 ~/.ssh/authorized_keys中

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

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

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


相关推荐

  • 关于图像特征提取

     网上发现一篇不错的文章,是关于图像特征提取的,给自己做的项目有点类似,发出来供大家参考。      特征提取是计算机视觉和图像处理中的一个概念。它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征。特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点、连续的曲线或者连续的区域。特征的定义       至今为止特征没有万能和精确的定义。特征的精确定义往往

    2022年4月9日
    42
  • 查看linux执行的命令记录_shell 调用history

    查看linux执行的命令记录_shell 调用history前言我们每次敲打linux命令的时候,有时候想用之前用过的命令,一般情况下,我们都会按↑↓箭头来寻找历史的命令记录,那如果我想用1天前执行的某条命令,难道还要按↑100次?显示这样是不现实的,我们可

    2022年7月30日
    5
  • oracle客户端配置监听_oracle11g客户端配置

    oracle客户端配置监听_oracle11g客户端配置1、环境介绍操作系统:windows10专业版oracle版本:19coracle客户端版本:19.3oracle客户端下载地址:https://www.oracle.com/database/technologies/oracle19c-windows-downloads.html2、运行软件包中setup.exe进行安装3、使用sqlplus连接数据库sqlplus用户名/密码@服务器/服务名sqlplusdebezium/Smtgbk_123@10.99.99.20

    2025年7月29日
    4
  • java des ecb_【转】 java DES ECB模式对称加密解密

    java des ecb_【转】 java DES ECB模式对称加密解密最近需要又要使用DES加密数据,要求DES加密出来的数据为对称加密,经过研究,发现了一些问题:1.DES对称ECB模式加密的数据,长度必须为8的倍数2.加密的数据,加密后先转码(因为加密后的数据我是转码了),否则解密是乱码格式一下是源代码:这个是加密的工具类:packagecom.palmfu.sql;importjava.security.Key;importjavax.crypto.Ciphe…

    2025年6月24日
    5
  • 解决idea一直处于Process Running问题

    解决idea一直处于Process Running问题

    2021年6月11日
    121
  • 多模型融合权重如何训练_单因子模型

    多模型融合权重如何训练_单因子模型本篇文章有别于传统的多因子研究,我们并未将重点放在阿尔法因子的挖掘上,而是通过对股票组合的权重优化计算,找到了在市值中性、行业中性、风格因子中性约束下的最优投资组合,以及验证得到的组合权重是否满足了约束条件。结构化多因子风险模型首先对收益率进行简单的线性分解,分解方程中包含四个组成部分:股票收益率、因子暴露、因子收益率和特质因子收益率。那么,第只股票的线性分解如下所示:rj=x1f1+x2f2+x3f3+x4f4⋅⋅⋅⋅xKfK+ujr_j=x_1f_1+x_2f_2+x_3f_3+x_4f_4···

    2022年10月6日
    2

发表回复

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

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