最後更新: 23/1/12
介紹:
autofs 並不是一個真真正正的 File System 來,
它本身是一個背景程式來, 並且監察系統進出某一些目錄
當有"需要"時, 才會自動掛載它們, 一定時間 timeout 後, 它就會自己卸載
好處是減少資源浪費, 比如 sshfs
安裝:
apt-get install autofs
主程式:
automount [options] [master_map]
主要設定文件:
/etc/auto.master <--------- Default 的 master_map
/etc/auto.net <----------755 (NFS 的特別掛載)
/etc/auto.misc
/etc/auto.smb <----------755 (CIFS 的特別掛載)
/etc/default/autofs <---------- option
auto.master
在 /etc/auto.master 內一行定義一個掛載點
格式如下
mount-point [map-type:]map [options]
Example:
/mnt/share /etc/auto.nfs
mount-point: 共有兩種 indirect maps 和 direct maps
indirect maps
用 indirect maps 時, 系統會自動建立及刪除相應的 mount-point
資源最終會掛載在 /mount-point/folder 上 ( folder 是在 map 上定義的)
direct maps
而 direct maps 格式為 /-
folder 則是 mount-point 的 full path
map-type: 其大一種 file / program / ldap / hesiod
options: 放入去 mount -o options 裡的
最後, 有一行
+auto.master
意思是指自己都可以是 map file
Map file 格式:
map file 一般以 auto.X 的名稱存在
比如 auto.nfs, 格式為
Key -Options Source
Example1:
nfs -fstype=nfs4,rw,soft,intr Server_IP:/home/share
當要 mout 的 FS 不是 NFS 時, 就要加上 -fstype= FS
比如: -fsytpe=smbfs, -fstype=ext4, -fstype=fuse 及 -fstype=iso9660,ro
Example2:
auto.master
/- /etc/auto.conf
auto.conf
/mnt/backup -fstype=ext4 :/dev/hda1
/mnt/cd -fstype=iso9660,ro :/dev/sr0
Example3:
auto.master
/mnt/automnt /etc/auto.conf
auto.conf
backup -fstype=ext4 :/dev/hda1
cd -fstype=iso9660,ro :/dev/sr0
Remark:
在 auto.master 內不可以
/mnt/share /etc/auto.cd /mnt/share /etc/auto.backup
ignoring duplicate indirect mount /mnt/share
修改設定後, 記得 reload 它
/etc/init.d/autofs reload
Testing
只有正確 access 相應的目錄, 那 auto-mount 才會生效
Example:
auto.master
/mnt/automnt auto.nfs
auto.nfs
nfs Server:/DIR
只有當 Client :cd /mnt/automnt/nfs: 或 "ls /mnt/automnt/nfs"
才會 tigger 到 automount
attempting to mount entry /mnt/share/nfs mount(nfs): mounted 192.168.123.111:/home/share on /mnt/share/nfs mounted /mnt/share/nfs
ls /mnt/automnt 是不會 tigger 的 !!
/etc/default/autofs 內的 Option
# 過多久才 un-mount 沒有 access 的 mount-point
TIMEOUT=300
1 remaining in /mnt/share 1 remaining in /mnt/share 1 remaining in /mnt/share 1 remaining in /mnt/share expiring path /mnt/share/nfs unmounting dir = /mnt/share/nfs expired /mnt/share/nfs
# 當 mount-point 無效時, 多久才 re-mount 一次
NEGATIVE_TIMEOUT=60
* 與 &
user1 server:/home/user1
user2 server:/home/user2
相當於
* server:/home/&
/net 與 /smb
net <----- 自動掛載 nfs 資源
smb <----- 自動掛載 samba 資源
比如:
cd /net/fileserver/export
FUSE 與 autofs
由於 automount 是以 root 身份來執行, 所以如果要其他人都用到 mount 回來的資源,
那就要加上 "allow_other" 此 option !!
格式:
mntpoint -fstype=fuse,allow_other :sshfs\#[email protected]\:/path/to/mount
autofs - samba
autofs, samba-client, samba-common
# file: /etc/auto.master
/mnt/cifs_share /etc/auto.cifs --timeout=600 --ghost
# /etc/auto.cifs:
share_data -fstype=cifs,rw,noperm,credentials=/etc/credentials.txt ://192.168.1.11/share_data
# mount -t cifs -o username=YOUR_NAME,password=YOUR_PW //192.168.44.100/share1 /mnt/buffalo/share1
# /etc/credentials.txt
username=user
password=mypw
Debugging
automount -f -v
-f, --foreground
-v, --verbose
Starting automounter version 5.0.4, master map /etc/auto.master
using kernel protocol version 5.01
syntax error in nsswitch config near [ syntax error ]
lookup(file): failed to read included master map auto.master
mounted indirect on /mnt/share with timeout 300, freq 75 seconds