Arch manual pages

exportfs(8) System Manager's Manual exportfs(8)

exportfs - 管理NFS共享文件系統列表

/usr/sbin/exportfs [-avi] [-o options,..] [client:/path ..]
/usr/sbin/exportfs -r [-v]
/usr/sbin/exportfs [-av] -u [client:/path ..]
/usr/sbin/exportfs [-v]
/usr/sbin/exportfs -f

exportfs 命令用來管理當前NFS共享的文件系統列表。 這個列表保存在一個單獨的文件 /var/lib/nfs/xtab 中,當遠端主機要求對一個文件系統樹加載並訪問時由 mountd 讀取,列表中活動的一部分也保存在在內核共享表中。

通常 xtab 在執行 exportfs -a.

的時候,根據 /etc/exports 中定義的共享列表來初始化。 但是,管理員可以選擇添加或刪除獨立的文件系統,不必修改 /etc/exports ,只要執行 exportfs 就可以了。

exportfs 和它的合作者 mountd 工作在兩種模式之一,一種是2.4以及早期的內核採用的傳統模式, 另一種是2.6以後內核採用的模式。 2.6之後的內核提供了 nfsd 虛擬文件系統,掛載點是 /proc/fs/nfs。 在2.6內核中如果沒有掛載這個系統,將使用傳統模式。

在新模式中, exportfs 不爲內核提供任何信息,只通過 /var/lib/nfs/xtab 文件將信息提供給 mountdmountd 將等待內核請求,提供需要的信息。

在傳統模式中,任何標識了一臺特定主機(而不是一個子網或是一個工作組)的 共享請求會直接進入內核共享表,同時寫入 /var/lib/nfs/xtab. 甚至於,任何列在 /var/lib/nfs/rmtab 中的掛載點,只要它符合一個不指定主機的共享請求,將使得 rmtab 給出的主機的一個適當的共享條目進入內核的共享表中。

-a
打開或取消所有目錄共享。
-o options,...
指定一列共享選項,與 exports(5) 中講到的類似。
-i
忽略 /etc/exports 文件,從而只使用默認的和命令行指定的選項。
-r
重新共享所有目錄。它使 /var/lib/nfs/xtab 和 /etc/exports 同步。 它將 /etc/exports 中已刪除的條目從 /var/lib/nfs/xtab 中刪除,將內核共享表中任何不再有效的條目移除。
-u
取消一個或多個目錄的共享。
-f
在“新”模式下,刷新內核共享表之外的任何東西。 任何活動的客戶程序將在它們的下次請求中得到 mountd 添加的新的共享條目。
-v
輸出詳細信息。當共享或者取消共享時,顯示在做什麼。 顯示當前共享列表的時候,同時顯示共享的選項。

第一條概述中顯示出如何執行命令來添加新的共享。 當執行 exportfs -a時, 所有 exports(5) 中的目錄將添加到 xtab 並且將結果列表送進內核。

host:/path 參數指定了要共享的目錄和可以訪問它的主機。 所有 exports(5) 中定義的格式都可以支持。 想要將一個目錄共享給所有其他機器,只要用 :/path 就可以了。

這種指定一個特定主機/目錄的共享選項來自於多種來源。 有一系列的默認選項,可以在 /etc/exports 中指定它們(除非指定了 -i 選項)。 另外,管理員可以使用 -o 參數和一系列以逗號分隔的選項來覆蓋所有默認選項。 做法就像在 exports(5) 中一樣。 因此, exportfs 可以用來修改已經共享的目錄的共享選項。

nfsd(8) 對內核共享表的修改會在命令行解析和 xtab 文件修改之後馬上進行。

默認的共享選項是 sync,ro,root_squash,no_delay

第三種語法顯示了怎樣取消一個當前的共享目錄。 當執行 exportfs -ua, 的時候, xtab 中的所有條目被從內核共享表中移除, 這個文件會被清空。這樣可以迅速停止所有NFS服務。

要取消單獨的共享條目,可以指定一個 host:/path 參數。這樣刪除了 xtab 中的條目並且移除了對應的內核條目(如果有的話)。

執行不帶選項的 exportfs 將列出當前的共享列表。當給出 -v 選項時,會列出各自的標誌。

這條命令將所有 /etc/exports 中列出的目錄加入到 /var/lib/nfs/xtab 中,將結果送入內核:

# exportfs -a

如果要將 /usr/tmp 目錄共享給 djando主機, 允許匿名寫入,應當這樣:

# exportfs -o async django:/usr/tmp

提供給IP子網,DNS和NIS域的共享不會使這些工作組中的客戶程序馬上就能讀取NFS; 這種類型的共享其實是向 mountd(8) 提供的信息,爲來自這些客戶的掛載請求授權。 這通常不是一個大問題,因爲重啓過程中,任何存在的加載都保存在 rmtab 中。

當取消一個子網或域的共享時,當前任何提供給這個工作組中的成員的共享 將被檢查。如果它們不再有效,它們將被移除。

exports(5), mountd(8)

Olaf Kirch, <okir@monad.swb.de>
Neil Brown, <neilb@cse.unsw.edu.au>

袁乙鈞 <bbbush@163.com>

2003.10.26

http://cmpp.linuxforum.net

本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
18 July 2003