前提:
兩臺ubuntu服務器,且兩臺服務器之間通信正常。
服務器需要同步的文件做好備份。
兩臺服務器IP分別爲:192.168.1.20 和 192.168.1.30
首先,用
lsof -i:873
命令,查看端口873有沒有被服務佔用,如果出現如下顯示,則表明sync服務已經安裝。
如果沒有安裝sync服務的服務器,請通過執行
apt-get install sync
安裝服務,如果是centos服務器,請使用
yum -y install sync
配置服務端:
服務安裝好之後,/etc下沒有配置文件,一般情況可以copy示例文件到/etc下
#cp /usr/share/doc/rsync/examples/rsyncd.conf /etc
然後打開這個文件:
#vi /etc/rsyncd.conf
文件全局內容配置爲:
uid=rootgid=rootmax connections=36000use chroot=nolog file=/var/log/rsyncd.logpid file=/var/run/rsyncd.pidlock file=/var/run/rsyncd.lockhosts allow = 192.168.1.30hosts deny = *
下面開始配置同步域內容:
[XXX_NAME]# sync of dir pathpath=/var/www/path_name# Miss I/O errorsignore errors = yesread only = no# hosts allow = 192.168.1.30# hosts deny = *#允許的用戶名auth users =username#對應的密碼文件secrets file = /etc/rsyncd.secrets
修改完後在/etc/下新建一文件rsyncd.secrets
#vi /etc/rsyncd.secretsusername:passwd:wq
修改rsyncd.pass權限
#chmod 600 /etc/rsyncd.secrets
現在就可以啓動rsync了
service rsync restart
啓動成功後可以用
lsof -i:873
查看是否正常啓動,也可以查看/var/log/rsyncd.log日誌文件。
下面是客戶端:
vi sync_test.sh rsync -avz --progress --password-file=/etc/rsyncd.passwd [email protected]::XXX_NAME /path_name/
新建密碼文件:
vi /etc/rsyncd.passwdpasswd:wdchmod 600 /etc/rsyncd.passwd (很重要,如果權限不對,會造成同步失敗)
執行sh文件,查看效果
sh sync_test.sh
如果服務器有防火牆,請自行把873端口開放
常用參數列表:
-v :觀察模式,可以列出更多的資訊; -q :與 -v 相反,安靜模式,輸出的資訊比較少; -r :遞迴複製!可以針對"目錄"來處理!很重要! -u :僅更新 (update),不會覆蓋目標的新檔案; -l :複製連結檔的屬性,而非連結的目標原始檔案內容; -p :複製時,連同屬性 (permission) 也保存不變! -g :保存原始檔案的擁有羣組; -o :保存原始檔案的擁有人; -D :保存原始檔案的裝置屬性 (device) -t :保存原始檔案的時間參數; -I :忽略更新時間 (mtime) 的屬性,檔案比對上會比較快速; -z :加上壓縮的參數! -e :使用的通道協定,例如使用 ssh 通道,則 -e ssh -a :相當於 -rlptgoD ,所以這個 -a 是最常用的參數了! --progress:在傳輸時顯示傳輸過程 --delete:刪除那些客戶端存在而服務端已經不存在的文件