1. 程式人生 > >rsync的自動指令碼實現方案(非rsyncd服務)

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

yum -y install rsync

2.3、服務端配置

In rsyncSer:

mkdir /files
chmod 700 -R /files/
useradd rsuser
echo rspw | passwd --stdin rsuser
setfacl -m u:rsuser:r-x /files

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

2.4、客戶端設定

In client:

2.4.1、建立指令碼資料夾

mkdir ~/script

2.4.2、建立指令碼

vim編輯~/script/rs.sh

#!/bin/bash
souUser=rsuser #服務端建立的使用者名稱
souPwd=rspw #服務端建立的密碼
souIP=10.168.0.100 #服務端ip address
souDir=/files/* #服務端的路徑
desDir=/files #客戶端的路徑
auto_rsync () {
    expect -c "set timeout -1;
                spawn rsync -av --delete 
[email protected]
$3:$4 $5; expect { *assword:* {send -- $1\r; expect { *denied* {exit 2;} eof } } eof {exit 1;} } " return $? } auto_rsync $souPwd $souUser $souIP $souDir $desDir

以上相當於手動執行:

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

2.4.3、安全設定

chmod 700 -R ~/script

2.4.4、定時任務

crontab -e

加入內容

*/15 * * * * sh ~/script/rs.sh