天天看點

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