rsync的自動指令碼實現方案(非rsyncd服務)
阿新 • • 發佈:2018-12-13
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