从Linux服务器中删除旧用户的主目录

时间:2011-11-06 23:28:39

标签: linux filesystems find ls home-directory

我们有一个拥有数千个用户主目录的NFS服务器。我做了大量的搜索和手册阅读,我似乎无法弄清楚这一点。

我想删除不再与我们在一起的用户的主目录。基本上任何一年内没有登录并对其主文件夹进行更改的人。

我持续点击的障碍是我看到的每个工具(ls,find等)都会在上次修改目录时给我列出但不包含内容。

以用户Joe为例。

/data/Users/joe/Windows# ls -lt drwxrwx---+ 2 1079 nhsstaff 4096 2008-07-31 15:13 Cookies

因此,根据此输出判断,您认为此文件夹自2008年7月7日起无法访问。

但是当你查看目录时:

`root@smb0:/data/Users/joe/Windows/Cookies# ls -ltr
-rwx------+ 1 1079 nhsstaff    92 2009-02-17 03:16 default@sun[1].txt
-rwx------+ 1 1079 nhsstaff    86 2009-02-17 03:16 default@ig[1].txt
-rwx------+ 1 1079 nhsstaff   136 2009-02-17 03:16 default@google[1].txt
-rwx------+ 1 1079 nhsstaff   104 2009-02-17 03:16 default@dell[1].txt
-rwxrwx---+ 1 1079 nhsstaff 32768 2010-04-26 07:53 index.dat`

您可以看到自2010年4月26日以来文件已被更改。

总而言之,我需要一种方法来搜索和排序上次使用主目录的时间。

1 个答案:

答案 0 :(得分:1)

运行此命令:

find /data/Users -mtime +365 |  awk '{print $1}' | cut -f2 -d"/" | sort\
    | uniq -c | awk '{print $2}'

这组命令将为您提供所有用户的列表,这些用户尚未修改其主文件夹超过一年。 如果您希望脚本通过脚本自动删除这些文件夹,我也可以提供它。