使用rsync +cwrsync實現windows和linux的檔案同步
1.rsync 簡介
Rsync(remote synchronize)是一個遠端資料同步工具,可通過LAN/WAN快速同步多臺主機間的檔案,也可以使用 Rsync 同步本地硬碟中的不同目錄。
Rsync 是用於取代rcp的一個工具,Rsync使用所謂的 “Rsync 演算法” 來使本地和遠端兩個主機之間的檔案達到同步,這個演算法只傳送兩個檔案的不同部分,而不是每次都整份傳送,因此速度相當快。您可以參考 How Rsync Works A Practical Overview 進一步瞭解 rsync 的運作機制。
Rsync支援大多數的類Unix系統,無論是Linux、Solaris還是BSD上都經過了良好的測試。此外,它在windows平臺下也有相應的版本,比較知名的有cwRsync和Sync2NAS。
Rsync 的初始作者是 Andrew Tridgell 和 Paul Mackerras,它當前由 http://rsync.samba.org維護。
Rsync的基本特點如下:
1. 可以映象儲存整個目錄樹和檔案系統;
2. 可以很容易做到保持原來檔案的許可權、時間、軟硬連結等;
3. 無須特殊許可權即可安裝;
4. 優化的流程,檔案傳輸效率高;
5. 可以使用rcp、ssh等方式來傳輸檔案,當然也可以通過直接的socket連線;
6. 支援匿名傳輸,以方便進行網站映象。
在使用 rsync 進行遠端同步時,可以使用兩種方式:遠端 Shell 方式(建議使用 ssh,使用者驗證由 ssh 負責)和 C/S 方式(即客戶連線遠端 rsync 伺服器,使用者驗證由 rsync 伺服器負責)。
無論本地同步目錄還是遠端同步資料,首次執行時將會把全部檔案拷貝一次,以後再執行時將只拷貝有變化的檔案(對於新檔案)或檔案的變化部分(對於原有檔案)。
rsync 在首次複製時沒有速度優勢,速度不如 tar,因此當資料量很大時您可以考慮先使用 tar 進行首次複製,然後再使用 rsync 進行資料同步。
2.伺服器端安裝rsync服務
可以通過yum安裝
yum install rsync
也可以通過編譯安裝
注:在用原始碼包編譯安裝之前,您得安裝gcc等編譯開具才行
tar xvf rsync-3.0.9.tar.gz
cd rsync-3.0.9
./configure --prefix=/usr
make && make install
3.rsync伺服器的配置檔案rsyncd.conf
rsync的主要有以下三個配置檔案:
- rsyncd.conf(主配置檔案)
- rsyncd.passwd(密碼檔案)
- rsyncd.motd(rysnc伺服器資訊)
伺服器配置檔案(/etc/rsyncd/rsyncd.conf),該檔案預設不存在,請建立:
在/etc目錄下建立一個rsyncd的目錄,我們用來存放rsyncd.conf 、rsyncd.passwd、rsyncd.motd檔案
mkdir rsyncd
建立檔案
touch rsyncd.conf
touch rsyncd.passwd
touch rsyncd.motd
chmod 600 rsyncd.pwsswd #為了密碼的安全性,我們把許可權設為600
3.1 配置rsyncd.conf檔案
# Distributed under the terms of the GNU General Public License v2
# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help
# This line is required by the /etc/init.d/rsyncd script
#告訴程序寫到 /var/run/rsyncd.pid 檔案中
pid file = /var/run/rsyncd.pid
lock file =/var/run/rsyncd.lock
#日誌檔案
log file =/var/log/rsyncd.log
log format = %t %a %m %f %b
syslog facility = local3
#指定執行埠,預設是873
port = 8877
#指定伺服器IP地址
address = 192.168.56.102
#伺服器端傳輸檔案時,要發哪個使用者和使用者組來執行,預設是nobody
uid = root
gid = root
#如果"use chroot"指定為yes,那麼rsync在傳輸檔案以前首先chroot到path引數所指定的目錄下。這樣做的原因是實現額外的安全防護,但是缺點是需要以root許可權,並且不能備份指向外部的符號連線所指向的目錄檔案。預設情況下chroot值為yes
use chroot = no
#客戶端最多連線數
max connections = 5
motd file = /etc/rsyncd/rsyncd.motd
timeout = 300
#同步模組
[test_data]
#指定檔案目錄所在路徑
path = /home/test
#list 意思是把rsync 伺服器上提供同步資料的目錄在伺服器上模組是否顯示列出來。預設是yes 。如果你不想列出來,就no ;如果是no是比較安全的,至少別人不知道你的伺服器上提供了哪些目錄。你自己知道就行了
list=no
#指定在 rsync 伺服器上執行 delete 操作時是否忽略 I/O 錯誤。一般來說 rsync 在出現 I/O 錯誤時將將跳過 –delete 操作,以防止因為暫時的資源不足或其它 I/O 錯誤導致的嚴重問題。
ignore errors
#如果為yes,表示只讀本地檔案就無法同步到伺服器
read only = no
#允許連線的ip,在演示中使用的雲伺服器就直接寫*,表示無限制 如果要規定ip或者ip段(10.1.4.0/255.255.255.0)需要進行其他配置
hosts allow=10.1.4.0/255.255.255.0
#hosts deny=*
#auth users 是必須在伺服器上存在的真實的系統使用者,如果你想用多個使用者,那就以,號隔開
auth users = root
#密碼存在rsyncd.passwd檔案裡
secrets file = /etc/rsyncd/rsyncd.passwd
3.2 配置rsyncd.passwd檔案
rsyncd.passwd的內容格式使用者名稱:密碼
root:123456
**注意:
將rsyncd.passwd這個密碼檔案的檔案屬性設為root擁有, 且許可權要設為600, 否則無法備份成功! 出於安全目的,檔案的屬性必需是隻有屬主可讀**
3.3 配置rsyncd.motd 檔案
rsyncd.motd 檔案類似ftp伺服器登入時,我們所看到的提示資訊……,當然這在全域性定義變數時,並不是必須的,你可以用#號注掉,或刪除
++++++++++++++++++++++++++++++++++++++++++++++
歡迎使用
++++++++++++++++++++++++++++++++++++++++++++++
4. 啟動rsync伺服器
防火牆配置
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8877 -j ACCEPT
啟動rsync服務
rsync --daemon --config=/etc/rsyncd/rsyncd.conf
在rsync伺服器上檢視提供了哪些可用的資料來源。
rsync --list-only [email protected]::test_data
5.安裝cwRsync客戶端
直接解壓,到bin檔案目錄下執行
rsync --port=8877 -vzrtopg --progress --delete [email protected].168.56.102::test_data /cygdrive/d/data
- –port=8877 #埠
- root #執行資料同步的使用者
- 192.168.56.102 #伺服器地址
- test_data #模組名稱
- –delete #從cwRsync客戶端D:\data目錄中刪除與Rsync服務端/home/test目錄中不相同的資料,即保證兩邊的資料完全一致
- /cygdrive/d/data 表示本地的同步資料夾/d/data 為同步資料夾
6. 定時同步檔案
在cwRsync客戶端的任務計劃中新增批處理指令碼檔案,每天凌晨02:30鍾自動同步Rsync服務端/data/share
目錄中的資料到D:\data
目錄:
cwrsync的bin目錄新建passwd.txt
輸入密碼然後儲存
繼續在bin目錄新建samba.bat
輸入
@echo off
echo.
echo 開始同步資料,請稍等...
echo.
cd C:\Program Files\cwRsync\bin
rsync --port=8877 -vzrtopg --progress --delete [email protected]192.168.56.102::test_data /cygdrive/d/data < passwd.txt
echo.
echo 資料同步完成
echo.
新增批處理指令碼到Windows任務計劃
開始-設定-控制面板-任務計劃
開啟新增任務計劃,下一步
瀏覽,選擇開啟C:\Program Files\cwRsync\bin
目錄裡面的samba.bat
執行這個任務,選擇每天,下一步
起始時間:02:30
執行這個任務:每天,下一步
輸入Windows系統管理員的登入密碼,下一步
完成!
CentOS Rsync服務端與Windows cwRsync客戶端實現資料同步完成!
參考地址:
相關推薦
一、rsync +cwrsync實現windows和linux的檔案同步
Rsync(remote synchronize)是一個遠端資料同步工具,可通過LAN/WAN快速同步多臺主機間的檔案,也可以使用 Rsync 同步本地硬碟中的不同目錄。 一、Linux伺服器端安裝rsync服務 1、可以通過yum安裝: yum -y install rsync
使用rsync +cwrsync實現windows和linux的檔案同步
1.rsync 簡介 Rsync(remote synchronize)是一個遠端資料同步工具,可通過LAN/WAN快速同步多臺主機間的檔案,也可以使用 Rsync 同步本地硬碟中的不同目錄。 Rsync 是用於取代rcp的一個工具,Rsync使用所謂
secureCRT 實現windows和linux檔案互傳
背景: 有一臺主機,安裝了windows10,然後伺服器安裝了ubuntu。在windows10上安裝SecureCRT來ssh連線ubuntu虛擬機器。一般在windows上面下載軟體要上傳到伺服器上使用,現在考慮使用sftp協議來直接傳輸。 方案: 使用Se
用putty 連線Linux以及實現 windows和linux檔案互傳
ssh原理 簡單說,SSH是一種網路協議,用於計算機之間的加密登入。 ssh原理參考文章 ssh客戶端工具 putty PuTTY小巧方便。但若需要向網路中的Linux系統上傳檔案,則可以使用PuTTY官方提供的PSCP工具來實現上傳。PSCP基於ss
Python實現Windows和Linux之間互相傳輸檔案(資料夾)的方法
專案中需要從Windows系統傳輸ISO檔案到Linux測試系統,然後再Linux測試系統裡安裝這個ISO檔案。所以就需要實現如何把檔案從Windows系統傳輸到Linux系統中。 在專案中使用了pscp.exe這個工具,只要按照pscp.exe的使用說明操作即可。只要進入pscp.exe的安裝位置
輕鬆實現windows和linux間的檔案互傳,簡單粗暴!
本人是個linux新手,將學習linux過程中遇到的問題,解決方法及收穫分享出來和大家一起討論交流,一起進步。如有不正確的地方,歡迎大家指正。 步驟: 1. 下載安裝FileZilla 客戶端(FileZill
使用PuTTy實現windows和linux之間檔案上傳下載
windows上下載完整的PuTTy安裝包而不僅僅是putty.exe這一個檔案。 PuTTy包中包含多個exe檔案,有putty和psftp等exe檔案。 putty只用於登入linux伺服器,在伺服器上進行相關操作,沒有與自己電腦連線,不能與進行上傳下載。 psftp用
Fedora17下用samba實現windows和Linux跨平臺檔案系統訪問
第一步:在Fedora linux系統下載並安裝samba # yum -y install samba 第二步:編輯samba的配置檔案/etc/samba/smb.conf 1. 找到[homes],複製這6行 yy6p 2.修改
pscp實現windows和linux之間互傳檔案
PSCP (PuTTY Secure Copy client)是PuTTY 提供的檔案傳輸工具 ,通過 SSH 連線,在兩臺機器之間安全的傳輸檔案,可以用於任何 SSH(包括 SSH v1、SSH v2) 伺服器。 只需將putty的pscp.exe放到C:\Windows
實現windows和linux伺服器之間檔案共享,工具就是Samba軟體中的一種,samba-client。
在嵌入式學習的過程中,避免不了操作linux。在windows下安裝虛擬機器執行linux作業系統,在windows下的開發工具編寫好的軟體放到linxu上進行編譯,然後又需要從linux'上取出來編
使用cwRsync實現windows下文件定時同步
指定 停止 手動 如果 直接 pos 文件 rsync clu 1.參考文獻: 使用cwRsync實現windows下文件定時同步(備份) 文件同步工具CwRsync的使用方法及常用命令詳解 2.背景: 當前的SCADA架構中,有1臺Server,5臺FE,還有1臺Clie
SUSE11配置samba伺服器(實現Windows訪問Linux檔案系統)
1、配置suse11zypper源進入存放repo的檔案目錄cd /etc/zypp/repos.d建立本地目錄mkdir or賦權chmod 777 or掛載介質mount -o loop suse11_64.iso /or 檢視zypper源zypper lr刪除源zypper rr 檢視所有安裝包zy
windows和Linux檔案路徑分隔符的不同及獲取
前言 在java開發的時候,往往是在windows環境下開發,遇到檔案路徑的問題是會用到“/”和”\”,對於這兩種斜槓的選擇略作解釋。 具體程式碼 反斜槓”\”是在windows系統下檔案路徑用到的斜槓,這個反斜槓在Linux系統下是不能用的。 斜槓
windows和linux檔案路徑問題
1、windows平臺:用\或\\linux平臺:用/2、Java程式碼中路徑分隔符用:File.separator3、windows平臺也相容/,也可以統一替換成/filePath = filePath.replace("\\", "/");4、路徑錯誤會報錯,No Suc
c++實現windows和linux之間跨平臺的方式
作業系統判定: Windows: WIN32 Linux: linux Solaris: __sun 編譯器判定: VC: _MSC_VER GCC/G++: __GNUC__ SunCC: __SUNPRO_C和__SUNPRO_CC
Windows和Linux檔案系統的區別
Windows,分盤,每個驅動器有自己的根目錄,形成的是多個樹並列的結構。 Linux,只有一個根目錄 / ,所有東西都是從這開始 /boot:放置linux啟動時用到的一些檔案,如核心檔案等 /bin,/user/bin:一般放
linux中rz, sz命令的安裝與使用------實現Windows與linux檔案的快捷互傳
大家經常在Windows上用SecureCRT來連線linux伺服器, 經常涉及到Windows與linux檔案的互傳。 當然, 我們可以用各種傳輸協議命令來做, 比如ftp, sftp, scp等,有經驗的朋友知道, 用samba那簡直是完美啊(利用sam
linux下rsync+inotify實現兩臺伺服器檔案實時同步
假設兩個伺服器: 192.168.0.1 源伺服器 有目錄 /opt/test/ 192.168.0.2 目標伺服器 有目錄 /opt/bak/test/ 實現的目的就是保持這兩個伺服器某個檔案目錄保持實時同步 實現方式: 通過rsync+inotify-too
rsync實現windows和windows之間的數據同步
同步 ror test uid ima 結構 nor 數據 pan 一:環境 1、同步對象:測試數據 2、服務端:Windows Server 2008 R2 3、客戶端:Windows7 旗艦版64位 4、服務端rsync版本:cwRsync
利用python同步windows和linux文件
linux then image byte exec 編輯 return col ash 寫python腳本的初衷,每次在windows編輯完文件後,想同步到linux上去,只能夠登錄服務器,然後再利用網絡copy,重復性很大,就想著能不能寫一個小腳本幫我同步 邏輯:比對本