一.安裝
remote synchronsize是一個遠程數據同步工具
apt-get install rsync
apt-get install inotify-tools
默認端口873
二.指令
權限配置
chmod 600 /etc/rsync.passwd
查看端口運行
lsof -i:873
殺死進程
kill -9 4353
三.服務端
1.本地同步
rsync -avz /backup2/ /backup/
backup2:源目錄
backup:目標目錄
2.遠程-需要root輸入密碼
rsync -avz 119.23.111.40:/backup/ /backup/
/backup/:源代碼目錄
/backup/:目標目錄
3.遠程
配置文件
uid=root
gid=root
use chroot=not
max connections=5
timeout=600
pid file=/var/run/rsyncd.pid
lockfile=/var/run/rsyncd.lock
log file=/var/log/rsyncd.log
[auth]
path=/web/rsync/auth_data
ignore errors=yes
read only=no
write only=no
list=yes
auth users=root
secrets file=/etc/rsync.passwd
密碼文件
vi /etc/rsync.passwd
root:root
運行rsync配置文件
/usr/bin/rsync --daemon --config=/etc/rsyncd.conf
本地測試-輸入模塊密碼
rsync -avz [email protected]::auth /backup/
四.客戶端
1.指令運行
rsync -avz /backup/ [email protected]::auth
2.配置密碼文件
vi /etc/rsync.pass
root
3.腳本運行
src=/backup/
[email protected]::auth
/usr/bin/inotifywait -mr --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src | while read files do
rsync -vzrtopg --delete --progress --password-file=/etc/rsync.pass $src $dst
done
exit 0
五.window服務端同步linux
1.windowsvn服務器上倉庫hook
post-commit.bat
SET REPOS=%1
SET USER=%2
SET SVN="C:\Program Files\VisualSVN Server\bin\svn.exe"
SET DIR="C:\workspace\itstation\h5"
(call %SVN% update %DIR% --username egg --password egg****** --non-interactive)
2.同步
@echo off
set RSYNC_HOME=C:\Program Files (x86)\cwRsync\bin
cd %RSYNC_HOME%
C:
rsync -vzrtopg --progress --delete /cygdrive/c/workspace/itstation/h5 [email protected]::auth
3.定時任務
win7:控制面板->管理工具->任務計劃程序->創建基本任務,選擇執行bat
4.配置啓動權限
services.msc->找到VisualSVN Server->設置管理員賬號->關閉啓動服務
注意:
1.權限設置默認網絡,需要設置爲管理者
2.同步目錄必須是checkout下來根目錄,否則無法回調執行post-commit.bat
鏈接