ssh无密码登录 及集群分发脚本

ssh无密码登录

  1. 配置

    1. 基本语法

      ssh 另一台电脑

    2. 无密钥配置

      1. 免密码登录原理

在这里插入图片描述

  1. 生成公钥和私钥

    ssh-keygen -t rsa
    
    然后敲回车 就会生成两个文件id rsa(私钥) ,id rsa_pub(公钥)
    
    
    
  2. 将公钥拷贝到要免密登录的目标机器上

    lan@hadoop100 ,ssh :ssh-copy-id hadoop100
    lan@hadoop100 ,ssh :ssh-copy-id hadoop101
    lan@hadoop100 ,ssh :ssh-copy-id hadoop102
    
    
    注意 : 还需要在hadoop100 采用root 账号,配置无密登录到hadoop101 和hadoop100,hadoop102
    
    还需要在hadoop101 上采用 lan账号 配置一下无密登录到handoop100、hadoop102服务器
    
  3. .ssh 文件夹 下 的文件功能解释

    known_hosts 记录ssh访问过的计算机的公钥
    id_rsa 生成的私钥
    id_rsa.pub 生成的公钥
    authorized_keys 存放授权过的无密登录服务器公钥

编辑集群分发脚本Sxync

  1. scp 安全拷贝

    1. scp定义

      1. 可以实现服务器与服务器之间的数据拷贝

      2. 基本语法

        scp -r  $pdir/$fname   $user@hadoop$hostt:$padir/$fname
        
        
        命令   递归   要拷贝的文件路径/名称   目的用户@主机:目的路径/名称
        
      3. 案例实操

        1. 在hadoop100 上,将hadoop100中/opt/module目录下的软件拷贝到hadoop101上

          scp -r /opt/module  root@hadoop101:/opt/module
          
        2. 同样操作,将hadoop100 拷贝到hadoop102上

        3. 当上述操作完成后,改变所有者和所有者组

        4. 然后拷贝/etc/profile 文件

    2. rsync 远程同步工具

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

      rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。

      1. 基本语法

        rsync    -rvl       $pdir/$fname              $user@hadoop$host:$pdir/$fname
        命令   选项参数   要拷贝的文件路径/名称    目的用户@主机:目的路径/名称
        	  选项参数说明
        
        选项	功能
        -r	递归
        -v	显示复制过程
        -l	拷贝符号连接
        
        
      2. 案例实操

        1. 把hadoop100 的目录同步到 hadoop 的root 用户下的/opt目录下

          rsync -rvl /opt/module root@hadoop101:/opt	
          
      3. sxync 集群分发脚本

        1. 需求 : 循环复制文件到所有结点的相同目录下

        2. 需求分析 ;

          1. rsync 命令原始拷贝
          rsync  -rvl     /opt/module  		 root@hadoop103:/opt/
          
          1. 期望脚本

            xsync 要同步的文件名称:

               3.  说明: 在home/lan/bin 这个目录下存放的脚本,lan用户可以在系统任何地方直接执行
            
        3. 脚本实现

          1. 在 home/lan 目录下创建bin目录,并在目录下xsync 创建文件,

            #!/bin/bash
            #1 获取输入参数个数,如果没有参数,直接退出
            pcount=$#
            if((pcount==0)); then
            echo no args;
            exit;
            fi
            
            #2 获取文件名称
            p1=$1
            fname=`basename $p1`
            echo fname=$fname
            
            #3 获取上级目录到绝对路径
            pdir=`cd -P $(dirname $p1); pwd`
            echo pdir=$pdir
            
            #4 获取当前用户名称
            user=`whoami`
            
            #5 循环
            for((host=103; host<105; host++)); do
                    echo ------------------- hadoop$host --------------
                    rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
            done
            
            
          2. 修改权限 : chmod 777

          3. 调用脚本形式 : xsync 文件名称

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

原文地址:https://www.cnblogs.com/YJBlog/p/12337096.html