Windows Linux 之間rsync同步CODE檔案

shawnloong發表於2017-01-22
Windows Linux 之間rsync同步CODE檔案

一.環境
Windows:
OS:Microsoft Windows Web Server 2008 SP1
IP:192.168.88.197

Linux:
OS:CentOS release 6.4 (Final)
IP:192.168.88.238

二. Windows 下安裝服務端軟體並配置
1.cwRsyncServer(安裝過程略),注意安裝過程會建立一個啟動服務的使用者
啟動cwsync
services.msc-找到RsyncServer 將啟動型別改成自動,然後啟動一下服務
2.配置cwrsync
建立同步目錄
這裡我新建的目錄為: E:\sync

為新建目錄賦權
右擊目錄sync選擇安全點選編輯將SvcCWRSYNC新增進去並賦給所有許可權

配置rsyncd.conf檔案,目錄路徑如下
C:\Program Files (x86)\ICW

修改為如下配置
use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log

# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[197bak]
path = /cygdrive/e/sync #路徑需要轉換為這裡真實路徑為E:\sync
read only = true
list  = no
hosts allow=192.168.88.238 #允許那些IP同步,多個IP用逗號分隔,允許所有直接是*
auth users = qssync #同步驗證使用者名稱
secrets file = etc/rsyncd.secrets #指定密碼檔案路徑
UID = 0
GID = 0

建立密碼檔案
注意密碼檔案路徑要和rsyncd.conf路徑一致
etc/rsyncd.secrets(這個路徑是相對路徑)
真實物理路徑為C:\Program Files (x86)\ICW\etc
編輯檔案rsyncd.secrets格式如下
sync:Abc23332c2014

windows 下備份CODE
BAT指令碼如下backup.bat
@echo off
set p=C:\Program Files\WinRAR
"%p%\rar" a  E:\sync\code%date:~,4%%date:~5,2%%date:~8,2%%time:~,2%%time:~3,2%%time:~7,1%.rar D:\app\code >>rar%date:~,4%%date:~5,2%%date:~8,2%%time:~,2%%time:~3,2%%time:~7,1%.log
forfiles /p "E:\sync" /d -7 /c "cmd /c echo deleting @file ... && del /f @path" >>rar%date:~,4%%date:~5,2%%date:~8,2%%time:~,2%%time:~3,2%%time:~7,1%.log

三.linux 端配置(這裡Linux作為客戶端)
1.安裝Linux客戶端(建議將selinux關閉)並配置
yum install rsync xinetd

配置
[root@zjqs-05 scripts]# vim /etc/xinetd.d/rsync

# default: off
# description: The rsync server is a good addition to an ftp server, as it \
#       allows crc checksumming etc.
service rsync
{
        disable = no
        flags           = IPv6
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}
將disable 由yes 改成no

建立密碼檔案
vim /etc/passwd.txt 內容如下
[root@zjqs-05 scripts]# cat /etc/passwd.txt
Abc23332c2014
這裡的密碼跟server端一致

建立同步指令碼
[root@zjqs-05 scripts]# cat /export/scripts/rsync197.sh
#!/bin/sh
rsync -vzrtopg --port=873 --progress --delete --exclude-from '/export/scripts/exclude.txt'  sync@192.168.88.197::197bak /data/197bak --password-file=/etc/passwd.txt
#exclude-from 防止有些需要長期保留的。不需要同步的

exclude.txt內容如下
[root@zjqs-05 scripts]# cat /export/scripts/exclude.txt
bianfeng20140911.bak
bianfeng


建立任務計劃
02 02 * * * /export/scripts/rsync197.sh >/export/scripts/rsync`date +%F`.log 2>&1

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24486203/viewspace-2132820/,如需轉載,請註明出處,否則將追究法律責任。

相關文章