整理一下 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編碼格式。
