一: 贴个脚本,主要实现两个功能;

  1. 配置集群免密码登录

  2. 可以远程批量执行命令

#!/bin/bash 
case $1 in # 获取option 
-cp | --cpoy)  #判断option
        for ip_list in `cat $2`;do  #读取$2文件每一行,将ip密码信息存入ip_list变量
        ip=`echo $ip_list | cut -d: -f1` #提取ip
        ps=`echo $ip_list | cut -d: -f2` #提取密码
            expect -c"                   
            spawn scp -r /root/.ssh/  $ip:  #直接拷贝.ssh目录,配置免密码登录
            expect {       
                \"*password*\" {send \"$ps\r\";exp_continue}
                \"*password*\" {send \"$ps\r\";}
            }
           "
       done
;;
-c  | --cmd)
        for ip_line in `cat $2`;do
        ip=`echo $ip_line| cut -d: -f1`
            if [[ "$4" = \h ]];then
                echo -e "\033[33m $ip: \033[0m" 
                ssh $ip $3
            else
            echo -e "\033[33m $ip: \033[0m" `ssh $ip $3`
            fi
        done
;;
-h | --help )
echo -e "\e[1;32m  Please create a IP Password file in advance: \e[0m"
echo -e "\e[1;32m  $0 -cp,--copy  ip.txt  \e[0m"
echo -e "\e[1;32m  $0 -c,--cmd  ip.txt 'cmd' and \h \e[0m"
;;
esac

二: 使用方法

主要和存储有ip和密码信息的文件配合使用(自己创建);

例如ip.txt的格式:

root@test01:~/lijp# cat  ip.txt 
192.168.7.1:123456
192.168.7.2:123456
192.168.7.3:123456
192.168.7.4:123456
192.168.7.5:123456
......

三: 示例

1. 执行命令

root@test01:~/lijp# ./script-shell_main.sh -c ip.txt  hostname
 192.168.7.1:  test01
 192.168.7.2:  test02
 192.168.7.3:  test03
 192.168.7.4:  test04
 192.168.7.5:  test05
 ....

2. 配置免密码登录(就是cp .ssh/ 目录)

root@test01:~/lijp# ./script-shell_main.sh -cp ip.txt 
spawn scp -r /root/.ssh/ 192.168.7.1:
known_hosts                                                                                                    100%   16KB  16.2KB/s   00:00    
authorized_keys2                                                                                               100%  396     0.4KB/s   00:00    
id_rsa1.pub                                                                                                    100%  393     0.4KB/s   00:00    
authorized_keys                                                                                                100%  777     0.8KB/s   00:00    
id_rsa.pub                                                                                                     100%  396     0.4KB/s   00:00    
id_rsa                                                                                                         100% 1675     1.6KB/s   00:00    
config                                                                                                         100%   32     0.0KB/s   00:00    
spawn scp -r /root/.ssh/ 192.168.7.2:
known_hosts                                                                                                    100%   16KB  16.2KB/s   00:00    
authorized_keys2                                                                                               100%  396     0.4KB/s   00:00    
id_rsa1.pub                                                                                                    100%  393     0.4KB/s   00:01    
authorized_keys                                                                                                100%  777     0.8KB/s   00:00    
id_rsa.pub                                                                                                     100%  396     0.4KB/s   00:00    
id_rsa                                                                                                         100% 1675     1.6KB/s   00:00    
config                                                                                                         100%   32     0.0KB/s   00:00    
spawn scp -r /root/.ssh/ 192.168.7.3:
known_hosts                                                                                                    100%   16KB  16.2KB/s   00:00    
authorized_keys2                                                                                               100%  396     0.4KB/s   00:00    
id_rsa1.pub                                                                                                    100%  393     0.4KB/s   00:00    
authorized_keys                                                                                                100%  777     0.8KB/s   00:00    
id_rsa.pub                                                                                                     100%  396     0.4KB/s   00:00    
id_rsa                                                                                                         100% 1675     1.6KB/s   00:00    
config                                                                                                         100%   32     0.0KB/s   00:00    
spawn scp -r /root/.ssh/ 192.168.7.4:
known_hosts                                                                                                    100%   16KB  16.2KB/s   00:00    
authorized_keys2                                                                                               100%  396     0.4KB/s   00:00    
id_rsa1.pub                                                                                                    100%  393     0.4KB/s   00:00    
authorized_keys                                                                                                100%  777     0.8KB/s   00:00    
id_rsa.pub                                                                                                     100%  396     0.4KB/s   00:00    
id_rsa                                                                                                         100% 1675     1.6KB/s   00:00    
config                                                                                                         100%   32     0.0KB/s   00:00

目录cp完,即可免密码ssh远程主机