一.安装
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 root@127.0.0.1::auth /backup/
四.客户端
1.指令运行
rsync -avz /backup/ root@119.23.111.90::auth
2.配置密码文件
vi /etc/rsync.pass
root
3.脚本运行
src=/backup/
dst=root@119.23.111.40::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 root@119.23.111.40::auth
3.定时任务
win7:控制面板->管理工具->任务计划程序->创建基本任务,选择执行bat
4.配置启动权限
services.msc->找到VisualSVN Server->设置管理员账号->关闭启动服务
注意:
1.权限设置默认网络,需要设置为管理者
2.同步目录必须是checkout下来根目录,否则无法回调执行post-commit.bat
链接