linux-fuser命令
[root@localhost test ~]$ fuserNo process specification givenUsage: fuser [ -a | -s | -c ] [ -n SPACE ] [ -SIGNAL ] [ -kimuv ] NAME... [ - ] [ -n SPACE ] [ -SIGNAL ] [ -kimuv ] NAME... fuser -l fuser -VShow which processes use the named files, sockets, or filesystems. -a display unused files too -c mounted FS -f silently ignored (for POSIX compatibility) -i ask before killing (ignored without -k) -k kill processes accessing the named file -l list available signal names -m show all processes using the named filesystems -n SPACE search in this name space (file, udp, or tcp) -s silent operation -SIGNAL send this signal instead of SIGKILL -u display user IDs -v verbose output -V display version information -4 search IPv4 sockets only -6 search IPv6 sockets only - reset options udp/tcp names: [local_port][,[rmt_host][,[rmt_port]]][oracle@acctdb01 ~]$ fuser命令用于报告进程使用的文件和网络套接字。fuser命令列出了本地进程的进程号,那些本地进程使用file,参数指定的本地或远程文件。对于阻塞特别设备,此命令列出了使用该设备上任何文件的进程。fuser:identify processes using files or sockets :可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息常用参数及说明:更多详细信息可以参考man fuser页面 -u:除了进程的PID之外,同时列出该进程的owner -v:列出更多的信息 -m:后面接的文件名会主动上提到该文件系统的最顶层,对umount不成功很有帮助 例子:1. 查询当前目录下的进程[root@localhost test]# fuser -uv . USER PID ACCESS COMMAND .: root 3784 ..c.. (root)bash root 3815 ..c.. (root)bash root 9998 ..c.. (root)bash root 28673 ..c.. (root)vi ACCES列说明: c:此程序在当前目录下 e:当运行的时候可执行 f:打开文件,默认状态下被忽略 F:打开文件等待被写入,同f一样,默认状态下被忽略 r:root directory,根目录 m:可能为共享库 2. 查询正在使用文件的进程信息[root@rhel6164 ~]# fuser -uv 文件名 [clef@rhel6164 ~]$ fuser -uv /home/clef/log.txt #用log.txt查看不到正在使用的进程 [clef@rhel6164 ~]$ fuser -uv /home/clef/.log.txt.swp #用.log.txt.swp可以查看到正在使用的进程 USER PID ACCESS COMMAND /home/clef/.log.txt.swp: clef 32744 F.... (clef)vim --要列出使用/etc/passwd文件的本地进程的进程号,请输入:fuser /etc/passwd--要列出使用/etc/filesystems文件的进程的进程号和用户登录名,请输入:fuser -u /etc/filesystems --要终止使用给定文件系统的所有进程,请输入:fuser -k -x -u -c /dev/hd1 或者 fuser -kxuc /home--要列出正在使用已从给定文件系统删除的文件的全部进程,请输入:fuser -d /usr文件 3. 当umount不成功的时候,用fuser查询所占用文件系统的进程[root@localhost test]# df -h /mnt/linux_share/ #/mnt/linux_share为mount的文件系统 Filesystem Size Used Avail Use% Mounted on xx.xx.xx.xx:linux_share 299G 156G 144G 52% /mnt/linux_share [root@localhost test]# umount /mnt/linux_share/ #当umount的时候提示设备正忙 umount: /mnt/linux_share: device is busy umount: /mnt/linux_share: device is busy [root@localhost test]# fuser -muv /mnt/linux_share/ #通过fuser查看正在占用该文件系统的进程 USER PID ACCESS COMMAND /mnt/linux_share/: root 3815 ..c.. (root)bash --运行下面命令杀掉占用此设备的进程fuser -m -v -k/mnt/linux_share/或者fuser -m -v -k -i /mnt/linux_share/(每杀掉一下进程会让你确认) 4. 查看那些程序使用tcp的80端口:$fuser -n tcp 80或$fuser -v -n tcp 80或$fuser -v 80/tcp这里,后两种方式显示的信息比较全,因为有了-v选项# fuser -v 111/udp 111/tcp 用户 进程号 权限 命令111/udp: rpc 968 F.... rpcbind111/tcp: rpc 968 F.... rpcbind如上例子中第4列的权限也成访问类型,如下:c 代表当前目录 F 打开的文件,用于写操作。默认不显示。e 可执行的被运行 m 映射文件或者共享库。f 打开的文件。默认不显示。 r 根目录。
文章名称:linux-fuser命令
当前URL:
http://bzwzjz.com/article/iggesg.html