天天看点

Expect--自动批量分发公钥脚本

1.在使用之前,先安装epel源,yum install expect

2.写分发脚本,后缀为exp

<code>    </code><code>#!/usr/bin/expect</code>

<code>    </code><code>set</code> <code>host_ip [lindex $argv 0]</code>

<code>    </code><code>spawn </code><code>ssh</code><code>-copy-</code><code>id</code> <code>-i </code><code>/root/</code><code>.</code><code>ssh</code><code>/id_rsa</code><code>.pub $host_ip</code>

<code>    </code><code>expect {</code>

<code>            </code><code>-timeout 60</code>

<code>            </code><code>"(yes/no)?"</code> <code>{ send </code><code>"yes\n"</code><code>;exp_continue}</code>

<code>            </code><code>"password:"</code> <code>{ send </code><code>"123456\n"</code><code>}</code>

<code>            </code><code>timeout {puts </code><code>"Connect timeout!"</code><code>;</code><code>return</code><code>}</code>

<code>    </code><code>}</code>

<code>    </code><code>expect eof</code>

<code>    </code><code>exit</code> <code>-onexit {</code>

<code>            </code><code>send_user </code><code>"Job has finished!"</code>

    注:set的作用是设置变量,spawn设置执行命令时,可以引用变量;变量的第一个参数为0

3.设置变量列表,并调用自动分发脚本;后缀为sh

<code>    </code><code>#!/bin/bash</code>

<code>    </code><code>iplist=(</code>

<code>            </code><code>192.168.0.241</code>

<code>            </code><code>192.168.0.242</code>

<code>            </code><code>192.168.0.243</code>

<code>    </code><code>)</code>

<code>    </code><code>for</code> <code>ip </code><code>in</code> <code>${iplist[*]};</code><code>do</code>

<code>            </code><code>expect </code><code>/root/ssh164</code><code>.exp $ip</code>

<code>    </code><code>done</code>

4.开始分发

    #sh ssh164.sh

本文转自激情燃烧的岁月博客51CTO博客,原文链接http://blog.51cto.com/liuzhengwei521/1832764如需转载请自行联系原作者

weilovepan520