用shell脚本实现集群之间的免密登陆

微信公众号:关注菜鸟解说大数据
关注可了解更多的大数据相关的内容。问题或建议,请公众号留言;
如果你觉得我写的文章对你有帮助,欢迎关注和赞赏我[1]

推荐阅读写这个脚本的理由脚本说明关注菜鸟解说大数据

推荐阅读

  • 1.在腾讯云中安装mysql
  • 2.shell脚本出来Mysql的增删改查
  • 3.MYSQL中limit不适用的场景
  • 4.用shell玩转MYSQL实战

写这个脚本的理由

在搭建大数据集群的时候,我们首先要实现所有机器之间的免密登陆。但是我又有点懒所以就想着写一个脚本来实现。

 1#!/usr/bin/bash
 2
 3# 安装expect,minimal没有此rpm包,需联网或有本地yum源
 4yum install expect -y
 5expect << EOF
 6set timeout 10
 7
 8# 创建公有密钥
 9
10spawn ssh-keygen -t rsa
11expect {
12        "*to save the key" {send "\n";exp_continue}
13        "*(y/n)" {send "y\r";exp_continue}
14        "Enter passphrase" {send "\n";exp_continue}
15        "Enter same passphrase" {send "\n";exp_continue}
16}
17
18EOF
19
20#  获取/etc/hosts文件中除localhost的映射关系
21ip_list=`grep -v 'localhost' /etc/hosts | awk -F ' ' '{print $1,$2}'`
22for ip in $ip_list
23do
24expect << EOF
25        set timeout 2
26
27        # 发送公有密钥
28        spawn ssh-copy-id root@$ip
29        expect {
30                "yes/no" {send "yes\r";exp_continue}
31                "password" {send "root\r";exp_continue}
32        }
33
34        # 拷贝/etc/hosts文件到远程机器
35        spawn scp /etc/hosts $ip:/etc
36        expect {
37                "yes/no" {send "yes\r";exp_continue}
38                "password" {send "root\r";exp_continue}
39        }
40EOF
41done

脚本说明

1.需要联网。
2.把脚本里面的密码改成你自己的密码
3.把脚本放在你自己的机器里。直接sh + 脚本名.sh即可。

关注菜鸟解说大数据

如果你觉得到作者的文章对你有帮助,欢迎赞赏,有你的支持,公众号一定会越来越好!

公众号二维码

你可能感兴趣的:(Linux)