windows 下的 Rsync 同步


整理一下 windows 下的 rsync 文件同步。

Rsync下載地址;

鏈接:https://pan.baidu.com/s/1nL0Ee_u76ytWKUFMeiKDIw
提取碼:52in

一、Server 端

172.16.2.36  

1、安裝  cwRsyncServer_4.0.5_Installer.exe

依據提示下一步下一步安裝即可。安裝成功之后 在服務里面找到  RsyncServer 服務;

 

點開屬性  登陸關系配置程 本地賬戶;(或者可以在安裝時候 輸入本機系統的賬戶密碼)

2、配置文件 rsync.conf;

默認安裝配置在  C:\Program Files (x86)\ICW

配置參考:

use chroot = false
strict modes = false

# read only = yes

list = no
hosts allow = 172.16.2.37
# 指定地址才能進行同步 多個IP 或者網段 用空格隔開; max connections = 3
# 最大鏈接 lock file = rsyncd.lock motd file = rsyncd.motd log file = /cygdrive/d/testwork/rsyncd.log
# 日志目錄 transfer logging
= yes uid = 0 gid = 0 auth users = user1
# 認證用戶 secrets file
= rsyncd.password
# 認證密碼 rsyncd.passwd 這個是自己創建。
# 創建位置 沒有指定路徑、默認在C:\Program Files (x86)\ICW\ 安裝目錄下。 [testwork] path
= /cygdrive/d/testwork
# 需要同步的目錄 d 盤 下的 testwork 目錄
# /cydrive/d/ 配置格式 d 盤符。 其他 F 盤符 就是換成 f read only
= false transfer logging = yes

3、創建配置文件中 認證密碼 rsyncd.password 文件:

user1:passwd

4、注 服務端 172.16.2.36  需要開放 873 端口。

二、Rsync 客戶端同步:

172.16.2.37 

1、安裝 cwRsync_4.0.5_Installer.exe

默認也是 C:\Program Files (x86)\cwRsync

因為前面配置有認證;需要配置一個 passwd 驗證;

2、rsync 同步

同步示例:
C:\Program Files (x86)\cwRsync\bin>rsync -vzra --progress --bwlimit=200 --iconv=GB18030 --exclude="test*" --files-from="include.txt" user1@172.16.2.36::testwork < passwd.txt /cygdrive/d/testfile
# --files-from 指定同步的路徑 放在 include.txt 里說明
# passwd.txt 認證密碼
# /cygdrive/d/testfile 同步到客戶端本機的路徑
# --exclude "*test" # 排除test結尾文件
# --exclude "file/file2" # 排除 file2 文件
# --exclude-from=exclude.txt 指定排除的文件 放在 exclude.txt 里說明

# txt 說明不指定路徑,默認需要放置在 Rsync 默認安裝的 C:\Program Files (x86)\cwRsync\bin 目錄下。

rsync 命令參數:

-v, --verbose    詳細模式輸出,詳細顯示數據傳輸備份情況
-z, --compress    傳輸時進行壓縮以提高傳輸效率,--compress-level=NUM可按級別壓縮。局域網可以不用壓縮
-a, --archive    歸檔模式,表示以遞歸方式傳輸文件,並保持所有文件屬性,等價於-rtopgDl
-r, --recursive(屬於-a參數)    對子目錄以遞歸模式,即目錄下的所有目錄都同樣傳輸
-t, --times(屬於-a參數)    保持文件時間屬性信息
-o, --owner(屬於-a參數)    保持文件屬主信息
-p, --perms(屬於-a參數)    保持文件權限
-g, --group(屬於-a參數)    保持文件屬組信息
-D, --devices (屬於-a參數)    保持設備文件信息
-l, --links(屬於-a參數)    保留軟鏈接(小寫字母l)
-P, --progress    顯示同步的過程及傳輸時的進度等信息
-e, --rsh=COMMAND    使用的信道協議(remote shell),指定替代rsh的shell程序。例如:ssh
--exclude=PATTERN    指定排除不需要傳輸的文件信息
--exclude-from=file    文件名所在的目錄文件,即可以實現排除多個文件
--bwlimit=RATE    實現數據傳輸過程限速傳輸,限制速率單位為kbytes

3、創建 密碼驗證 passwd.txt

passwd
# 只輸入一行密碼即可。

4、創建 指定同步目錄文件 include.txt

# 分行寫每一個目錄 只同步指定的目錄
a
c/a
d/a

5、創建 排除目錄文件 exclude.txt

# 分行寫每一個目錄  排除以后目錄同步
a/log
b/*.log
c
.[a-z]*    
# 不備份以點開頭的隱藏文件, 這個路徑必須是一個相對路徑,不能是絕對路徑

在windows 下 設置執行 批處理定時任務:

C:\
cd "C:\Program Files (x86)\cwRsync\bin>"
rsync -vzra --progress user1@172.16.2.36::testwork < passwd.txt /cygdrive/d/z >> d:\rsyncd.log

# 切換 安裝路徑進行執行 cwRsync 命令
# 執行記錄日志到 rsync.log

三、linux 系統下同步windows  中文亂碼

需要設置  密碼文件  權限 當前用戶的只讀

chmod 600 /etc/rsyncd.password

1、如果windows系統同步linux系統時,rsyncd.conf 配置文件添加一行:

charset = GBK

在 windows下同步命令需要添加一個參數:

--iconv=GBK,UTF-8
# --iconv=GBK,UTF-8  
# GBK指windows 本地的編碼,UTF-8指服務器端linux的編碼格式

2、要是 linux系統同步windows系統 rsyncd.conf 配置文件添加:

charset = UTF-8

所以在 linux下同步命令需要添加一個參數:

--iconv=UTF-8,GBK 
# --iconv=UTF-8,GBK 
# UTF-8指linux本地的編碼,GBK指服務器端即windows編碼格式。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM