linux服務器讀取Windows開發機上文件的幾種方式(SAMBA/NFS/RSYNC)

此前一直是使用Linux開SAMBA-Server,Windows上掛載網絡磁盤編輯。
但是這樣在編輯文件,特別是索引的時候比較卡,因此想將代碼放在本地。
嘗試了幾種方案,做記錄。

1. Windows文件共享

直接Windows上共享文件夾。設置爲Everyone讀寫。

#首次運行需要,系統默認不裝的。不裝會提示“出現有壞的超級塊”
yum install cifs-utils

#輸入你的Windows登錄用戶名密碼
mount -t cifs //172.10.3.233/share /opt/myshare -o username=yt,password=1

掛載後所有文件都有Execute權限。

但是這個模式有兩個致命缺點:
1)在共享目錄下編譯很慢
2)鏈接無法生成,直接導致開源庫編譯失敗。

2.NFS共享

和Windows共享文件夾差不多,就不細說了。
可以使用haneWIN NFS Server作爲服務端。

 mount -t nfs 172.10.3.233:/share -o nolock,tcp 

3. RSYNC共享

在Windows機器上搭建RSYNC服務端。我選了cwRsyncServer。

1. 安裝

安裝過程中要鍵入你的登錄用戶名密碼,方便他作爲Windows服務啓動。否則的話,就會創建新的帳戶。
這裏寫圖片描述

安裝完畢後,記得設置開機自動啓動。
這裏寫圖片描述

2. 修改配置文件

安裝完畢後,修改配置文件。去開始菜單找到配置文件。
這裏寫圖片描述

假設我們的代碼存儲在e:\codes\share目錄下。
下面是整個配置文件的樣本。注意uid和gid=0必須要加

use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
uid = 0
gid = 0
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[myshare]
path = /cygdrive/e/codes/share
read only = true
transfer logging = yes

如果設置readonly=true,就不用做第二步了。反之要選擇你配置的目錄進行索引操作。
就編輯代碼而言,不建議打開可寫,否則又會面臨鏈接文件之類的問題。

全部編輯完畢後,需要重啓服務生效。

3. 增加請求的Linux服務器名

由於cwRsyncServer在每次收到請求時,會自動進行一次域名解析(這當然是會失敗的),然後就要等超時。因此比較簡單的辦法是將需要連接的機器加入你的hosts文件(C:\Windows\System32\drivers\etc\hosts)。

假設服務器的IP是172.10.10.196,在文件的最下面加入一行即可。

172.10.10.196 172.10.10.196

4. 同步

在Linux服務器上敲下以下命令即可。
如果只要更新部分文件(例如示例中,只更新aaa目錄)也可以。

rsync -av rsync://172.10.3.233/myshare/aaa/ /opt/myshare/aaa/

首次更新會全量更新,後面就會增量了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章