天天看點

Shell分發系統

rsync.expect

1

2

3

4

5

6

7

8

9

10

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

<code>set</code> <code>passwd</code> <code>"123456"</code>               <code>##建議用密鑰,防止密碼洩露</code>

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

<code>set</code> <code>file</code> <code>[lindex $argv 1]</code>

<code>spawn </code><code>rsync</code> <code>-avR --files-from=$</code><code>file</code> <code>/ root@$host:/</code>

<code>expect {</code>

<code>"yes/no"</code> <code>{ send </code><code>"yes\r"</code><code>}</code>

<code>"password:"</code> <code>{ send </code><code>"$passwd\r"</code> <code>}</code>

<code>}</code>

<code>expect eof</code>

list.txt

<code>/tmp/1.txt</code>

<code>/usr/local/sbin/2.sh</code>

ip.list

<code>192.168.89.134</code>

<code>192.168.87.167</code>

rsync.sh

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

<code>for</code> <code>ip </code><code>in</code> <code>`</code><code>cat</code> <code>/tmp/ip</code><code>.list`</code>

<code>do</code>

<code>    </code><code>echo</code> <code>$ip</code>

<code>    </code><code>.</code><code>/rsync</code><code>.expect $ip </code><code>/tmp/list</code><code>.txt</code>

<code>done</code>

除了檔案的分發外,還可以批量執行指令。

本文轉自Grodd51CTO部落格,原文連結:http://blog.51cto.com/juispan/2065683,如需轉載請自行聯系原作者