# 集群配置分发

# 1. SSH 免密登录

# 需求:实现 big002、big003、big004 三台主机之前相互免密登录

ssh

  • 使用 leichu 账号登录 big002
  • 进入~/.ssh目录
  • 执行命令:ssh-keygen -t rsa ,连续三次回车,当前目录下回生成2个文件:id_rsaid_rsa.pub
  • 执行命令:ssh-copy-id big002,将公钥文件 id_rsa.pub 拷贝到主机 big002
  • 执行命令:ssh-copy-id big003,将公钥文件 id_rsa.pub 拷贝到主机 big003
  • 执行命令:ssh-copy-id big004,将公钥文件 id_rsa.pub 拷贝到主机 big004
  • 此时,从主机 big002 的 leichu 账户免密登录到 big003 和 big004 已经配置完成。
  • 然后,在 主机 big003 和 big004 上进行相同的操作.
  • 最后,在三台主机上,切换到 root 用户,分别再进行一次相同的操作。
  • 这样,三台主机之间的 可以使用 root 账户 和 leichu 账号 进行免密登录了。

# 2. scp 命令

### 在主机 big001上:将 big001 主机上的 /test 目录 拷贝到 big004 的 /test 目录	(推送)
[leichu@big001 ~]$ scp -r test leichu@big004:~/test                              100%    8     8.7KB/s   00:00    

### 在主机 big004 上:将 big001 主机上的 /test 目录 拷贝到 big004 的 /test 目录(拉取)
[leichu@big004 ~]$ scp -r leichu@big001:test ./

### 在主机 big003 上:将 big001 主机上的 /test 目录 拷贝到 big004 的 /test 目录(第三者)
[leichu@big003 ~]$ scp -r leichu@big001:~/test leichu@big004:~/test
leichu@big001's password: 
leichu@big004's password: 
wx.txt                                                                                             100%   79    71.3KB/s   00:00    
part-r-00000                                                                                       100%   48    45.0KB/s   00:00    
.part-r-00000.crc                                                                                  100%   12    14.2KB/s   00:00    
_SUCCESS                                                                                           100%    0     0.0KB/s   00:00    
._SUCCESS.crc                                                                                      100%    8    10.2KB/s   00:00    
Connection to big001 closed.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 3. 自定义命令:xsync

  1. 新建 /usr/local/bin/xsync 文件,内容如下
  2. 赋予可执行权限 chmod +x /usr/local/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=2; host<5; host++)); do
        echo ------------------- big00$host --------------
        rsync -rvl $pdir/$fname $user@big00$host:$pdir
done
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
更新时间: 2021-05-05 21:07:37