天天看点

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,如需转载请自行联系原作者