天天看點

rsync的自動腳本實作方案(非rsyncd服務)

1、前言

rsyncd的方式筆者認為友善,但會在系統留下一個被攻擊的服務點,筆者認為用自動函數+普通使用者的方式較安全,故而寫下此文備用。

2、實作

2.1、環境

rsyncSer:

ipaddress=10.168.0.100

client:

ipaddress=10.168.0.8

2.2、yum的安裝

In rsyncSer & client

1

<code>yum -y </code><code>install</code> <code>rsync</code>

2.3、服務端配置

In rsyncSer:

2

3

4

5

<code>mkdir</code> <code>/files</code>

<code>chmod</code> <code>700 -R </code><code>/files/</code>

<code>useradd</code> <code>rsuser</code>

<code>echo</code> <code>rspw | </code><code>passwd</code> <code>--stdin rsuser</code>

<code>setfacl -m u:rsuser:r-x </code><code>/files</code>

以上設定可保障資料的安全,避免其他非root使用者擷取。

2.4、用戶端設定

In client:

2.4.1、建立腳本檔案夾

<code>mkdir</code> <code>~</code><code>/script</code>

2.4.2、建立腳本

vim編輯~/script/rs.sh

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

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

<code>souUser=rsuser </code><code>#服務端建立的使用者名</code>

<code>souPwd=rspw </code><code>#服務端建立的密碼</code>

<code>souIP=10.168.0.100 </code><code>#服務端ip address</code>

<code>souDir=</code><code>/files/</code><code>* </code><code>#服務端的路徑</code>

<code>desDir=</code><code>/files</code> <code>#用戶端的路徑</code>

<code>auto_rsync () {</code>

<code>    </code><code>expect -c "</code><code>set</code> <code>timeout -1;</code>

<code>                </code><code>spawn </code><code>rsync</code> <code>-av --delete $2@$3:$4 $5;</code>

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

<code>                    </code><code>*assword:* {send -- $1\r;</code>

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

<code>                                    </code><code>*denied* {</code><code>exit</code> <code>2;}</code>

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

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

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

<code>                    </code><code>eof         {</code><code>exit</code> <code>1;}</code>

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

<code>                </code><code>"</code>

<code>    </code><code>return</code> <code>$?</code>

<code>}</code>

<code>auto_rsync $souPwd $souUser $souIP $souDir $desDir</code>

以上相當于手動執行:

<code>rsync</code> <code>-av  --delete [email protected]:</code><code>/files/</code><code>* </code><code>/files</code>

2.4.3、安全設定

<code>chmod</code> <code>700 -R ~</code><code>/script</code>

2.4.4、定時任務

<code>crontab</code> <code>-e</code>

加入内容

<code>*</code><code>/15</code> <code>* * * * sh ~</code><code>/script/rs</code><code>.sh</code>

<code></code>

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