fuser和find命令

作者: allen哦 | 来源:发表于2016-11-22 15:19 被阅读53次

    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命令

        本文链接:https://www.haomeiwen.com/subject/oeoijttx.html