1. 程式人生 > >mount、umount、fuser命令使用小結

mount、umount、fuser命令使用小結

mnt The sda rom mount命令 目錄 rem host 解釋

mount -t cifs -o username=administrator,password=xxxxx //192.168.11.17/Data/ /mnt/databak/之後想卸載掛載目錄,使用umount /mnt/databak卸載掛載點時,會遇到“device is busy”提示,這時fuser就能查出誰在使用這個資源;當然umount –lf [掛載點] 也可以強制卸載。

解決:使用fuser -m -v /mnt/databak/看哪個用戶,哪個進程占用此設備,再用fuser -m -v-k /mnt/databak/殺掉該進程

fuser功能
fuser 可以顯示出當前哪個程序在使用磁盤上的某個文件、掛載點、甚至網絡端口,並給出程序進程的詳細信息.
fuser顯示使用指定文件或者文件系統的進程ID.默認情況下每個文件名後面跟一個字母表示訪問類型。
訪問類型如下:
c 代表當前目錄
e 將此文件作為程序的可執行對象使用
f 打開的文件。默認不顯示。
F 打開的文件,用於寫操作。默認不顯示。
r 根目錄。
m 映射文件或者共享庫。

s 將此文件作為共享庫(或其他可裝載對象)使用
當指定的文件沒有被訪問,或者出現錯誤的時候,fuser會返回非零。
為了查看使用tcp和udp套接字的進程,需要-n選項並指定名稱空間。默認IpV4和IpV6都會顯示。套接字可以是本地的或者是遠程的端口,和遠程的地址。所有的域是可選的,但是其前面的‘,‘必須存在。如下:
[lcl_port][,[rmt_host][,[rmt_port]]]
對於ip地址和port,名稱和數字表示都可以使用。
fuser只把PID輸出到標準輸出,其他的都輸出到標準錯誤輸出。
常用選項
-a 顯示所有命令行中指定的文件,默認情況下被訪問的文件才會被顯示。
-c 和-m一樣,用於POSIX兼容。
-k 殺掉訪問文件的進程。如果沒有指定-signal就會發送SIGKILL信號。
-i 殺掉進程之前詢問用戶,如果沒有-k這個選項會被忽略。
-l 列出所有已知的信號名稱。
-m name 指定一個掛載文件系統上的文件或者被掛載的塊設備(名稱name)。這樣所有訪問這個文件或者文件系統的進程都會被列出來。如果指定的是一個目錄會自動轉換成"name/",並使用所有掛載在那個目錄下面的文件系統。
-n space 指定一個不同的命名空間(space).這裏支持不同的空間文件(文件名,此處默認)、tcp(本地tcp端口)、udp(本地udp端口)。對於端口, 可以指定端口號或者名稱,如果不會引起歧義那麽可以使用簡單表示的形式,例如:name/space (即形如:80/tcp之類的表示)。
-s 靜默模式,這時候-u,-v會被忽略。-a不能和-s一起使用。
-signal 使用指定的信號,而不是用SIGKILL來殺掉進程。可以通過名稱或者號碼來表示信號(例如-HUP,-1),這個選項要和-k一起使用,否則會被忽略。
-u 在每個PID後面添加進程擁有者的用戶名稱。
-v 詳細模式。輸出似ps命令的輸出,包含PID,USER,COMMAND等許多域,如果是內核訪問的那麽PID為kernel. -V 輸出版本號。
-4 使用IPV4套接字,不能和-6一起應用,只在-n的tcp和udp的命名存在時不被忽略。
-6 使用IPV6套接字,不能和-4一起應用,只在-n的tcp和udp的命名存在時不被忽略。
- 重置所有的選項,把信號設置為SIGKILL.
使用示例

顯示使用某個文件的進程信息
$ fuser -um /dev/sda2
/dev/sda2: 6378c(quietheart) 6534c(quietheart) 6628(quietheart)
6653c(quietheart) 7429c(quietheart) 7549c(quietheart) 7608c(quietheart)
這個命令在umount的時候很有用,可以找到還有哪些用到這個設備了。
殺掉打開readme文件的程序

$fuser -m -k -i readme
這裏,會在kill之前詢問是否確定。最好加上-v以便知道將要殺那個進程。
查看那些程序使用tcp的80端口


$fuser -v -n tcp 80 $fuser -n tcp 80   

$fuser -v 80/tcp
fuser不同信號的應用
用 -l參數可以列出fuser所知的信號
# fuser -l
HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
UNUSED
fuser可以發送它已知的信號給訪問的指定文件進程而代替-k參數默認發送的SIGKILL,例如:只是掛起進程,那麽發送HUP信號就可以了
# fuser -v /root/install.log
用戶 進程號 權限 命令
/root/install.log: root 3347 f.... tail
# fuser -k -SIGHUP /root/install.log
/root/install.log: 3347
# fuser -v /root/install.log

一、mount命令

1.功能:文件掛載

2.格式:mount [-參數] [設備名稱] [掛載點]

3.常用選項:

-a :安裝在/etc/fstab文件中類出的所有文件系統。
-f :偽裝mount,作出檢查設備和目錄的樣子,但並不真正掛載文件系統。
-n :不把安裝記錄在/etc/mtab 文件中。
-r :”將文件系統安裝為只讀。
-v :詳細顯示安裝信息。
-w:將文件系統安裝為可寫,為命令默認情況。
-t <文件系統類型> :指定設備的文件系統類型,常見的有:
ext2 是linux目前常用的文件系統
msdos MS-DOS的fat,就是fat16
vfat windows98常用的fat32
nfs 網絡文件系統
iso9660 CD-ROM光盤標準文件系統
ntfs windows NT/2000/XP的文件系統
auto 自動檢測文件系統
-o <選項> :指定掛載文件系統時的選項,有些也可寫到在 /etc/fstab 中。常用的有:
defaults 使用所有選項的默認值(auto、nouser、rw、suid)
auto/noauto 允許/不允許以 –a選項進行安裝
dev/nodev 對/不對文件系統上的特殊設備進行解釋
exec/noexec 允許/不允許執行二進制代碼
suid/nosuid 確認/不確認suid和sgid位
user/nouser 允許/不允許一般用戶掛載
codepage=XXX 代碼頁
iocharset=XXX 字符集
ro 以只讀方式掛載
rw 以讀寫方式掛載
remount 重新安裝已經安裝了的文件系統
loop 掛載“回旋設備”以及“ISO鏡像文件”

二、umount命令

1.功能:

umount命令用於卸載已經加載的文件系統。利用設備名或掛載點都能umount文件系統,不過最好還是通過掛載點卸載,以免使用綁定掛載(一個設備,多個掛載點)時產生混亂。

來自: http://man.linuxde.net/umount umount命令用於卸載已經加載的文件系統。利用設備名或掛載點都能umount文件系統,不過最好還是通過掛載點卸載,以免使用綁定掛載(一個設備,多個掛載點)時產生混亂

來自: http://man.linuxde.net/umount umount命令用於卸載已經加載的文件系統。利用設備名或掛載點都能umount文件系統,不過最好還是通過掛載點卸載,以免使用綁定掛載(一個設備,多個掛載點)時產生混亂

來自: http://man.linuxde.net/umount umount命令用於卸載已經加載的文件系統。利用設備名或掛載點都能umount文件系統,不過最好還是通過掛載點卸載,以免使用綁定掛載(一個設備,多個掛載點)時產生混亂。

來自: http://man.linuxde.net/umount

用於卸載已經加載的文件系統

mount、umount、fuser命令使用小結