linux下設定目錄同步NFS 實現檔案共享

2021-06-19 07:28:38 字數 4472 閱讀 8850

一、概念

nfs(network file system/網路檔案系統):

1、設定linux系統之間的檔案共享(linux與windows中間檔案共享採用samba服務);

2、nfs只是一種檔案系統,本身沒有傳輸功能,是基於rpc協議實現的,才能達到兩個linux系統之間的檔案目錄共享;

3、nfs為c/s架構;

nfs伺服器ip:192.168.0.100

nfs客戶端ip:192.168.0.101

1、配置檔案

主要配置檔案為:/etc/exports

格式為: 共享目錄 可mount主機ip(引數1,引數2,……)

如:/var/nfs 192.168.0.101(rw,insecure,sync,all_squash)

說明:必須注意nfs/目錄的訪問許可權,必須設定成777許可權;父目錄/var許可權無要求,普通的755即可;

選項                       說明

ro                        該主機對該共享目錄有唯讀許可權

rw                       該主機對該共享目錄有讀寫許可權

root_squash          客戶機用root使用者訪問該共享資料夾時,將root使用者對映成匿名使用者

no_root_squash     客戶機用root訪問該共享資料夾時,不對映root使用者

all_squash             客戶機上的任何使用者訪問該共享目錄時都對映成匿名使用者

anonuid                將客戶機上的使用者對映成指定的本地使用者id的使用者

anongid                將客戶機上的使用者對映成屬於指定的本地使用者組id

sync                     資料同步寫入到記憶體與硬碟中

async                   資料會先暫存於記憶體中,而非直接寫入硬碟

insecure                允許從這台機器過來的非授權訪問

例如:/  zhang(rw) wang(rw,no_root_squash)

表示共享伺服器上的根目錄(/)只有zhang和wang兩台主機可以訪問,且有讀寫許可權;zhang主機用root使用者身份訪問時,將客戶機的root 使用者對映成伺服器上的匿名使用者(root_squash,該引數為預設引數),相當於在伺服器使用nobody使用者訪問目錄;wang主機用root使用者 身份訪問該共享目錄時,不對映root使用者(no_root_squash),即相當於在伺服器上用root身份訪問該目錄

/root/share/  192.168.1.20(rw,insecure,sync,all_squash) 

表示共享伺服器上的/root/share/目錄只有192.168.1.20主機可以訪問,且有讀寫許可權;此主機用任何身份訪問時,將客戶機的使用者都映 射成伺服器上的匿名使用者(all_squash),相當於在伺服器上用nobody使用者訪問該目錄(若客戶機要在該共享目錄上儲存檔案(即寫操作),則服 務器上的nobody使用者對該目錄必須有寫的許可權)

/home/ljm/  *.gdfs.edu.cn(rw,insecure,sync,all_squash)

表示共享/home/ljm/目錄,*.gdfs.edu.cn域中所有的主機都可以訪問該目錄,且有讀寫許可權

/home/share/  .gdfs.edu.cn(ro,sync,all_squash,anonuid=student,anongid=math) 

表示共享目錄/home/share/,*.gdfs.edu.cn域中的所有主機都可以訪問,但只有唯讀的許可權,所有使用者都對映成伺服器上的uid為student、gid為math的使用者

2、啟動相關服務

3、檢查共享目錄

隨後可以採用showmount –e檢視一下,看看共享的目錄情況:

[root@ns var]# showmount -e

export list for ns.osserver:

/var/nfs 192.168.0.101

ok,到此為止,nfs伺服器搭建完畢;

出現mount: mount to nfs server 'myhostname.mydomain.edu' failed: system error: no route to host錯誤解決方案

首選關閉防火牆測試一下是否是防火牆問題,確定防火牆問題操作步驟如下:

新建檔案: /etc/sysconfig/nfs ,把下面內容加入/etc/sysconfig/nfs中

mountd_port="4002"

statd_port="4003"

lockd_tcpport="4004"

lockd_u***ort="4004"

-a rh-firewall-1-input -p tcp --dport 111 -s 222.73.123.4 -j accept

-a rh-firewall-1-input -p udp --dport 111 -s 222.73.123.4 -j accept

-a rh-firewall-1-input -p tcp --dport 2049 -s 222.73.123.4 -j accept

-a rh-firewall-1-input -p udp --dport 2049 -s 222.73.123.4 -j accept

-a rh-firewall-1-input -p tcp --dport 4002:4004 -s 222.73.123.4 -j accept

-a rh-firewall-1-input -p udp --dport 4002:4004 -s 222.73.123.4 -j accept

/etc/init.d/portmap restart    重啟portmap

/etc/init.d/nfs restart            重啟nfs

/etc/init.d/nfslock restart     重啟nfslock

1、確保portmap執行

客戶端必須確保rpc協議相應的portmap正常執行,否則mount將失敗;

2、掛載/var/nfs目錄(本地掛載點為/mnt/nfs)

mount -t nfs -o rw 192.168.0.100:/var/nfs /var/nfs

成功mount以後,即可同本地目錄一樣隨意操作;

開機自動載入設定如下:

vi /etc/fstab

檔案末尾加入

192.168.0.100:/var/nfs /var/nfs nfs  rw  0 2

四、其它相關命令

1、當修改了/etc/exports檔案後,可以不用重新啟動nfs服務,直接採用exports –rv 即可重新匯出共享目錄;

該命令格式如下:

exportfs [-aruv]

-a :全部mount或者unmount /etc/exports中的內容

-r :重新mount /etc/exports中分享出來的目錄

-u :umount 目錄

-v :在 export 的時候,將詳細的資訊輸出到螢幕上。

具體例子:

[root@ns var]# showmount -e

export list for ns.osserver:

/var/nfs 172.20.*.*

[root@ns var]# exportfs –au #全部解除安裝

[root@ns var]# showmount -e

export list for ns.osserver:

[root@ns var]# exportfs –rv #全部重新 export 一次

exporting 172.20.*.*:/var/nfs

[root@ns var]#

2、showmout命令對於nfs的操作和查錯有很大的幫助,所以我們先來看一下showmount的用法

showmout

-a :這個引數是一般在nfs server上使用,是用來顯示已經mount上本機nfs目錄的cline機器。

-e :顯示指定的nfs server上export出來的目錄。

例如:[root@localhost ~]# showmount -e 172.20.65.16

export list for 172.20.65.16:

/var/nfs 172.20.*.*

[root@ns var]# showmount -a

all mount points on ns.osserver:

172.20.*.*:/var/nfs

五、常見問題解答

解決方案:可能是nfs伺服器的防火牆有問題;

解決方案:由於rpc協議沒執行;啟動portmap服務;

也有可能是防火牆問題;server/client均有可能。

linux下設定目錄許可權

chmod 777 home user 注 僅把 home user目錄的許可權設定為rwxrwxrwx chmod r 777 home user 注 表示將整個 home user目錄與其中的檔案和子目錄的許可權都設定為rwxrwxrwx引數 r表示啟動遞迴處理 2.chmod命令解析 chmo...

linux下設定共享目錄

linux系統的檔案或目錄的共享功能是非常強大,而且是非常靈活的,其對許可權的控制可以做到非常的細緻,當然如果你是通過命令列方式進行設定的 話,那麼對於剛接觸linux系統的使用者來說將是一件十分頭痛的事。但如果你所處的網路環境對安全要求不高的話,那麼只要簡單的幾個步驟就可以建立乙個 linux系統...

Linux下設定網絡卡

linux下設定網絡卡的速率和模式 mii tool f 100basetx fd eth0 把網絡卡eth0設定為100m的全雙工模式 還可以用 ethtool ethtool s eth0 speed 100 duplex full autoneg on 檢視機器上的網絡卡裝置 lspci 檢視...