1. 前言

大多数系统管理员会遇到磁盘空间或存储空间不足的情况,并且急需要释放更多的磁盘空间。您将需要找到浪费空间的文件并删除它或移动到其它存档介质上。但是,如何快速找到最大的无用文件以帮忙有效恢复磁盘空间呢?跟agedu工具打个招呼(发音为'age dee you') - 它会扫描一个目录树,并生成有关每个目录和子目录中使用了多少磁盘空间的报告,以及磁盘空间的使用情况。换句话说,此命令可能会帮助您释放磁盘空间。

linux清理磁盘空间(linux磁盘满了怎么快速处理)(1)

linux磁盘空间满了怎么办

2. `du`与`agedu`有什么区别

du命令以递归方式汇总每个文件的磁盘使用情况。这个工具就像du,但与du不同,它还区分了仍在使用的大量数据和几个月或几年未访问过的数据 - 例如,下载,解压缩,使用过一次,从未清理过的大量文档。 du帮助您找到使用磁盘空间的内容,而agedu可帮助您找到浪费磁盘空间的内容。

3. `agedu`是怎么工作的?

听听官方帮助文档怎么解释的

大多数Unix文件系统在其默认模式下,有助于记录上次访问文件的时间。不只是在它被编写或修改时,而是在它被阅读时。因此,如果您在几年前生成大量数据,忘记清理它,并且从未使用它,那么它原则上应该可以使用那些最后访问时间戳来区分它和大数据之间的区别您经常使用的数据量。

agedu是一个执行此操作的程序。它与du基本上进行相同类型的磁盘扫描,但它也记录了它扫描的所有内容的最后访问时间。然后,它构建一个索引,使其能够有效地生成报告,给出每个子目录的结果摘要,然后按需生成这些报告。

在这篇文章中,您将学习如何在Linux,MacOS X,FreeBSD和类Unix系统上安装agedu,以追踪浪费的磁盘空间使用情况。

4. 如何安装`agedu`

Deiban / Ubuntu Linux 用户使用apt-get安装agedu

apt-get install agedu

FreeBSD unix 用户执行以下命令安装agedu:

cd /usr/ports/sysutils/agedu/
make install clean

或使用FreeBSD提供的二进制文件作为替代方案:

pkg install agedu

RHEL / CentOS / Fedora / Scientific用户需要提前安装EPEL仓库

[root@zcwyou ~]# yum install epel-release

Arch Linux用户, 执行以下命令安装agedu:

sudo yaourt -S agedu

MacOS X 用户执行以下命令安装agedu:

brew install agedu

5. 怎么使用`agedu`找出浪费磁盘空间的大文件

首先,您需要扫描磁盘并构建包含特殊数据结构的索引文件,执行以下命令:

假设你家的目录为/home/zcwyou

linux清理磁盘空间(linux磁盘满了怎么快速处理)(2)

linux找出浪费磁盘空间的大文件

agedu -s /home/zcwyou
sudo agedu -s /var
sudo agedu -s /usr/share

在上面的例子中,扫描特定的目录构建索引。接下来,逻辑步骤是通过键入以下命令来查询索引:

agedu -w

当然,你可以使用浏览器打开图形化界面的报告

http://127.0.0.1:42113/

您可以在网页上看到磁盘使用情况的图形表示,其中使用不同的颜色来显示废弃和最近访问的数据之间的差异。随意点击任何子目录进入它并依次查看其子目录的报告;单击任何页面顶部的路径名部分以返回到更高级别的目录。要终止此模式,只需按[CTRL] + [D]。您可以设置agedu在运行其Web服务器时应侦听的网络地址和端口号:

命令格式如下:

agedu -w --address addr[:port]

例如Linux服务器的IP为192.168.1.254,指定服务的端口号为1234

[root@zcwyou ~]# agedu -w --address 192.168.1.254:1234

你可以使用用户认证:

[root@zcwyou ~]# agedu -w --address 192.168.1.254:1234 --auth basic

输出结果类似这样的:

Username: agedu

Password: 8123zkd82kazmdq

URL: http://192.168.1.254:1234/

agedu通常会为您填写用户名和密码。但是,您可以设置自己的用户名和密码:

agedu -w --address 192.168.1.254:1234 --auth basic --auth-fd 0

输入:

username:password

身份验证详细信息应包含用户名(username),后跟冒号(:),后跟密码(password),紧接着是文件结尾(按[CTRL] + [D])。

6. 如果使用终端命令行查看`agedu`结果

[root@zcwyou ~]# agedu -t /var/http

您将获得/var/http及其子目录中磁盘使用情况的摘要。输出与du命令的格式大致相同。要查看有多少旧数据,请使用-a选项以仅显示上次访问一段时间之前的文件。例如,要查看仅在十二个月或更长时间内未查看过的文件:

[root@zcwyou ~]# agedu -t /var/http -a 12m

7. 我只想查看特定文件占用磁盘空间的情况

比如mp3文件和avi文件

[root@zcwyou ~]# agedu -s . --exclude '*' --include '*.mp3'
[root@zcwyou ~]# agedu -s . --exclude '*' --include '*.avi'

命令行查看报告:

[root@zcwyou ~]# agedu -w

排除某些文件类型和目录

[root@zcwyou ~]# agedu -s ~/music --exclude '*' --include '*.mp3' --exclude-path './mp4/*'

8. 如何清理磁盘空间

agedu只是扫描结果,让你知道哪些文件比较老,哪些文件比较占用空间,如果你要清理磁盘空间,请使用rm命令

linux清理磁盘空间(linux磁盘满了怎么快速处理)(3)

linux如何清理磁盘空间

删除当前目录的abc.txt[root@zcwyou ~]# rm -f abc.txt

删除特定目录的tmp.txt

[root@zcwyou ~]# rm -f /var/http/abc.txt

删除特定目录下的所有子目录

[root@zcwyou ~]# rm -rf /var/tmp

9. 如何删除`agedu`的索引文件

使用以下命令查看agedu的索引文件

[root@zcwyou ~]# ls agedu.dat -lh

执行以下命令删除索引文件

[root@zcwyou ~]# agedu -R

或者直接使用rm命令

[root@zcwyou ~]# rm agedu.dat

但是,您也可以在命令行的末尾添加-R,以指示agedu在完成执行其他操作(如显示网页)后应删除其索引文件:

[root@zcwyou ~]# agedu -w -R

这篇博文可以让您快速浏览agedu的功能及使用方法。对于通常的unix/linux命令行的用户,此命令有更多复杂功能和选项。因此,我建议您阅读手册页以获取更多信息,或访问项目主页以获取最新的源代码:

[root@zcwyou ~]# man agedu