使用rsync +cwrsync實現windows和linux的文件同步

因爲項目中有需求,須要實現windows和linux的文件同步,通過項目大大的推薦,決定使用rsync +cwrsync實現windows和linux的文件同步。html

在配置和實際的使用過程當中遇到了不少問題,也查閱了不少資料,用了3個多小時才弄好。因而就想要把安裝過程寫成博客,一方面鞏固一下安裝的過程,一方面但願可以幫助到在安裝過程當中遇到一樣過程的人。linux

-------------------------------------------------分割線-------------------------------------------------vim

安裝環境:CentOS 7windows

一.服務器端配置centos

1.安裝rsync    安全

yum install rsync
服務器

2.配置rsync     tcp

vim /etc/rsyncd.conf (若是沒有此文件,請手動建立。使用 touch 或者 vim 直接編輯也是能夠建立的)ui

###################################################centos7

#下面是個人配置文件

uid = root #模塊傳輸文件時守護進程應該具備的uid

gid = root #模塊傳輸文件時守護進程應該具備的gid

#若是"use chroot"指定爲true,那麼rsync在傳輸文件之前首先chroot到path參數所指定的目錄下。這樣作的緣由是實現額外的安全防禦,可是缺點是須要以roots權限,而且不能備份指向外部的符號鏈接所指向的目錄文件。默認狀況下chroot值爲true

use chroot = no

max connections = 4 #最大鏈接數

pid file = /var/run/rsyncd.pid

lock file =/var/run/rsyncd.lock

log file =/var/log/rsyncd.log

 #容許鏈接的ip,在演示中使用的雲服務器就直接寫*,表示無限制 若是要規定ip或者ip段須要進行其餘配置

例如:192.168.1.0/255.255.255.0 

hosts allow = *

timeout = 900 #超時設置

port = 873 #默認端口爲873

#如下爲設置同步的目錄

[test]

path = /home/test #同步文件夾

#指定在 rsync 服務器上運行 delete 操做時是否忽略 I/O 錯誤。通常來講 rsync 在出現 I/O 錯誤時將將跳過 –delete 操做,以防止由於暫時的資源不足或其它 I/O 錯誤致使的嚴重問題。

ignore errors

read only = yes

list = yes 

hosts allow = * #指定鏈接的ip

auth users = test #指定同步的用戶

#指定上述帳號的密碼文件,文件和拓展名能夠自定義

secrets file = /etc/rsync.pass 

###################################################

3.新建rsyn.pass文件

該文件主要是指定鏈接用戶的用戶名和密碼

格式爲 name:password

須要注意的是須要修改此文件的權限不然鏈接時會出錯

chmod 600 /etc/rsync.pass

4.設置鏈接提示信息

vim  /var/rsyncd.motd

5.防火牆設置

由於是centos7因此採用的是firewall

firewall-cmd --zone=public --add-port=873/tcp --permanent

命令含義:

--zone #做用域

--add-port=873/tcp  #添加端口,格式爲:端口/通信協議

 --permanent   #永久生效,沒有此參數重啓後失效

 重啓防火牆

 firewall-cmd --reload

6.啓動rsync

rsync --daemon --config=/etc/rsyncd.conf

--daemon表示後臺啓動 --config 表示使用對應的配置文件

7.須要注意的是 

同步文件夾須要提早建立,而且修改其權限

chmod 655 test


二.客戶端鏈接

windows機器上安裝cwrsync

到安裝目錄下執行:

rsync.exe -vzrtopgu --progress --update test@ip::test /cygdrive/D/h

參數配置可參考官方文檔或者如下博客:

http://www.cnblogs.com/mchina/p/2829944.html

test@ip::test  前面那個test爲鏈接用戶 ip 爲服務器ip 後面那個test表示指定的模塊

/cygdrive/D/h 表示本地的同步文件夾/D/h 爲同步文件夾

此時windows電腦文件夾內容已經和服務器同步了

若是在鏈接過程當中遇到了問題能夠參考:

http://www.jb51.net/article/31920.htm

三.寫在後面

在安裝過程當中困擾我最大的問題就是在服務器配置好之後一直鏈接不起。此次的演示環境是centos7,在本身摸索安裝時使用的系統是centos6.5.仍是有一些不一樣。在centos6.5中我使用的是xinetd+rsync。可是我使用xinetd啓動時,使用的是  /etc/init.d/xinetd start 

可是一直會出現:

cwrsync rsync error rsync error: some files/attrs were not transferred 

錯誤,在參考了

http://www.jb51.net/article/34864.htm

仍是沒辦法解決。最後使用 rsync --daemon --config=/etc/rsyncd.conf 啓動時問題莫名其名就獲得瞭解決,本身也沒有想通是爲何。因此在rsync上還須要多探索和研究。

參考:

http://www.cnblogs.com/mchina/p/2829944.html

http://blog.itpub.net/29569333/viewspace-1157298/

相關文章
相關標籤/搜索