今天要作兩臺服務器,做爲cdn的源頭,兩臺服務器內容文件要同步.web
一臺主Master:192.168.1.230sql
一臺備份slave:192.168.1.236centos
操做系統爲centos 5.6 x86_64 .默認安裝了rsyncbash
1. 咱們只須要在Master上安inotify-tools這個工具服務器
解壓,按照INSTALL說明安裝好.ide
2. 在Master上生成key免密碼 ssh-keygen -t rsa 生成一對密鑰~/.ssh/工具
3. 把Master主機~/.ssh/id_rsa.pub 拷貝爲slave主機的~/.ssh/authorized_keys測試
4. 特別注意在master和slave上都要把.ssh的目錄權限改成700 ,裏面的文件改成600.否則仍是會失敗的.其實把sshd_conf中的StrictModes yes 改成no這個這樣就不用改權限也能成功(不建議).spa
5. ssh 192.168.1.236 無需密碼測試成功後.在master上
- #/bin/bash
- srcdir=/home/web/ #須要被同步的目錄
- ip="192.168.1.236" # 目標主機,多個ip能夠空格分開
- dstdir="/home/web/" #文件被同步到的目錄
- username="gamemanager" 用戶名
- /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $srcdir \
- | while read files
- do
- for ip_addr in $ip
- do
- /usr/bin/rsync -vzrtopg --delete --progress $srcdir $username@$ip_addr:$dstdir # > /dev/null 2>&1
- echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
- done
- done
6.運行腳本,在目錄中添加刪除文件均可以看到輸出內容的.