按红帽子共享文件夹中的用户分组FS

问题描述:

历史记录:我有一个共享文件夹,可供系统的所有用户访问。每个人都声称他们没有多少用处。所以,我决定检查每个用户使用共享文件夹的数量。按红帽子共享文件夹中的用户分组FS

我能够通过du -sh <path/to/folder>获得总使用量。但不在个人用户级别。

我想,我想太多了,以完成这件事。或许,可能会有直接的方式来完成这件事。

如果有人问类似的问题,请分享网址。

这里有一对夫妇的功能,可以帮助

space() { 
    local user=$1 
    local space=0 
    local tmp=`mktemp` 
    find . -user $user -exec stat --printf="%s\n" {} \; 2>/dev/null >> $tmp 
    for size in `cat $tmp`; do ((space=space + size)); done 
    local humanized=`mb $space` 
    echo "`pwd` $user $humanized" 
    rm -f $tmp 
} 

mb() { 
    local orig=$1 
    if [[ $orig -gt $((2**20)) ]]; then 
     echo -n $(($orig/2**20)) 
     echo "mb" 
    else 
     echo -n $(($orig/2**10)) 
     echo "kb" 
    fi 
} 

粘贴到这些你的shell,然后调用它的命令行上像

$space <user> 

它会打印出所有的文件大小为临时文件,然后将它们全部添加。 MB函数使其可读性强。当我运行它,我得到

/home/me me 377mb 

du -sh . 
399M . 

八九不离十相比;)