日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

linux 查看某文件是否正在使用(被读写)

發(fā)布時間:2023/12/15 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 linux 查看某文件是否正在使用(被读写) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

fuser功能
fuser 可以顯示出當(dāng)前哪個程序在使用磁盤上的某個文件、掛載點(diǎn)、甚至網(wǎng)絡(luò)端口,并給出程序進(jìn)程的詳細(xì)信息.
fuser顯示使用指定文件或者文件系統(tǒng)的進(jìn)程ID.默認(rèn)情況下每個文件名后面跟一個字母表示訪問類型。
訪問類型如下:
c 代表當(dāng)前目錄
e 將此文件作為程序的可執(zhí)行對象使用
f 打開的文件。默認(rèn)不顯示。
F 打開的文件,用于寫操作。默認(rèn)不顯示。
r 根目錄。
m 映射文件或者共享庫。

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

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

$fuser -m -k -i readme
這里,會在kill之前詢問是否確定。最好加上-v以便知道將要?dú)⒛莻€進(jìn)程。
查看那些程序使用tcp的80端口
$fuser -v -n tcp 80

$fuser -v 80/tcp
fuser不同信號的應(yīng)用
用 -l參數(shù)可以列出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可以發(fā)送它已知的信號給訪問的指定文件進(jìn)程而代替-k參數(shù)默認(rèn)發(fā)送的SIGKILL,例如:只是掛起進(jìn)程,那么發(fā)送HUP信號就可以了
# fuser -v /root/install.log
用戶 進(jìn)程號 權(quán)限 命令
/root/install.log: root 3347 f.... tail
# fuser -k -SIGHUP /root/install.log
/root/install.log: 3347
# fuser -v /root/install.log

參考至:http://hi.baidu.com/bossyt/item/020e2cddf09463ee3cc2cb1a
http://wenku.baidu.com/view/7e42df3667ec102de2bd8927.html
http://blog.sina.com.cn/s/blog_59af21260100tv1m.html

本文轉(zhuǎn)自:http://czmmiao.iteye.com/blog/1733722 感謝原作者分享

總結(jié)

以上是生活随笔為你收集整理的linux 查看某文件是否正在使用(被读写)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。