fuser和find命令

fuser命令

fuser命令是用来显示所有正在使用着指定file, file system, socket的进程信息。

例一

fuser -m -u /data

输出:

/data:                1476(root)  1477(nobody)  1478(nobody)  1479(nobody)   
                      1480(nobody)  8286ce(root)  8292ce(root)  8293ce(root)       
                      8294ce(root)  8295ce(root)  8298ce(root)  8305ce(root) 
                      8307ce(root)  8308ce(root)  8311ce(root)

用来查找所有正在使用/data的进程PID以及该进程的OWNER,如1476(root),其中1476是进程PIDroot是该进程的OWNER

例二

fuser -v -n tcp 8080

输出

                     USER        PID ACCESS COMMAND
8080/tcp:            root       8286 F.... python
                     root       8292 F.... python
                     root       8293 F.... python
                     root       8294 F.... python
                     root       8295 F.... python
                     root       8298 F.... python
                     root       8305 F.... python
                     root       8307 F.... python
                     root       8308 F.... python
                     root       8311 F.... python

用来查找所有监听了tcp 8080端口的进程, 如果要杀掉所有监听tcp 8080端口的进程,可以使用fuser -k -n tcp 8080

find命令

find命令是用来查找文件的命令。

常用参数

-name 按照文件名查找文件。

-user 按照文件属主来查找文件。

-type 按照文件类型来查找文件, 如 -type f 查找普通文件, -type d查找目录, -type l 查找符号链接文件

-amin n 查找系统中最近n分钟访问的文件

-atime n 查找系统中最近n*24小时访问的文件

-cmin n 查找系统中最近n分钟被改变文件状态的文件

-ctime n 查找系统中最近n*24小时被改变文件状态的文件

-mmin n 查找系统中最近n分钟被改变文件数据的文件

-mtime n 查找系统中最近n*24小时被改变文件数据的文件

-exec 对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;, 注意{ };之间的空格。

-ok-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

例一

find / -name -f "*.log" -print

输出

/var/log/anaconda.storage.log

/var/log/r6389.log

/var/log/anaconda.program.log

/var/log/mysqld.log

用来查找 /目录下面所有名称匹配*.log的普通文件, -print 参数指示find命令将查找到的文件输出到标准输出

例二

find / -name "*.log" -type f -atime +2 -ls

输出

132745  152 -rw-------   1 root     root       152119 Mar 19  2015 /log/storage.log
132741    4 -rw-r--r--   1 root     root           98 Nov 10 10:29 /log/r6389.log
132744   36 -rw-------   1 root     root        32844 Mar 19  2015 /log/program.log
132742   24 -rw-------   1 root     root        21233 Mar 19  2015 /log/anaconda.log

用来查找 /目录中所有匹配*.log 而且在最近2天以内未被访问过的普通文件, 然后输出查找到的文件详情

例三

find / -name "*.log" -type f -mtime +7 -print0 | xargs -0 /bin/rm -f

用来删除 \目录中所有匹配*.log 而且一周内未被修改过的普通文件, -print0xargs -0结合用来处理文件名中含有换行符或者其他空白字符的情况。find命令的-print参数默认以换行符结束文件名, 而-print0则以空字符结束。

你可能感兴趣的:(fuser和find命令)