agedu:用于跟踪浪费的磁盘空间的 Unix / Linux 命令

大多数系统管理员的磁盘空间或存储空间不足。 用户将需要更多磁盘空间,而您需要释放存储空间。 您会发现浪费空间的文件并将其删除或移动到存档媒体。 但是,您如何找到可以帮助恢复最大空间的正确文件来删除? 向agedu 工具问好(发音为“age dee you”)——它会扫描目录树并生成关于每个目录和子目录中使用了多少磁盘空间的报告,以及磁盘空间的使用情况如何对应于最后一个文件-很久以前的访问时间。 换句话说,此命令可能会帮助您释放磁盘空间。

你vs阿杜

du 命令以递归方式总结每个文件的磁盘使用情况。 该工具类似于 du,但与 du 不同,它还区分仍在使用的大量数据集合和数月或数年未访问的数据集合 – 例如,下载、解压、使用一次且从未清理过的大量档案向上。 du 可以帮助您找到正在使用磁盘空间的内容,而agedu 可以帮助您找到正在浪费您的磁盘空间的内容。

老龄化如何运作?

从手册页:

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

agedu 是一个可以做到这一点的程序。 它基本上与 du 进行相同类型的磁盘扫描,但它还记录它扫描的所有内容的最后访问时间。 然后它建立一个索引,让它有效地生成报告,为每个子目录提供结果摘要,然后它按需生成这些报告。

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

安装ageu

德班 / Ubuntu Linux 用户键入以下 apt-get 命令来安装agedu:
# apt-get install agedu

示例输出:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  agedu
0 upgraded, 1 newly installed, 0 to remove and 13 not upgraded.
Need to get 46.4 kB of archives.
After this operation, 131 kB of additional disk space will be used.
Get:1 https://debian.osuosl.org/debian/ squeeze/main agedu amd64 8928-1 [46.4 kB]
Fetched 46.4 kB in 1s (29.8 kB/s)                  
Selecting previously deselected package agedu.
(Reading database ... 274216 files and directories currently installed.)
Unpacking agedu (from .../agedu_8928-1_amd64.deb) ...
Processing triggers for man-db ...
Setting up agedu (8928-1) ...

FreeBSD Unix 用户可以按如下方式使用端口:
# cd /usr/ports/sysutils/agedu/
# make install clean

或者使用 FreeBSD 提供的二进制包:
# pkg install agedu
RHEL / CentOS / Fedora / 科学 Linux 用户打开 EPEL repo 并输入以下 yum 命令来安装agedu:
# yum install agedu

样本输出:

Loaded plugins: auto-update-debuginfo, product-id, protectbase, rhnplugin,
              : subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
0 packages excluded due to repository protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package agedu.x86_64 0:0-2.r9153.el6 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
================================================================================
 Package         Arch             Version                  Repository      Size
================================================================================
Installing:
 agedu           x86_64           0-2.r9153.el6            epel            47 k
 
Transaction Summary
================================================================================
Install       1 Package(s)
 
Total download size: 47 k
Installed size: 83 k
Is this ok [y/N]: y
Downloading Packages:
agedu-0-2.r9153.el6.x86_64.rpm                           |  47 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : agedu-0-2.r9153.el6.x86_64                                   1/1 
Installed products updated.
  Verifying  : agedu-0-2.r9153.el6.x86_64                                   1/1 
 
Installed:
  agedu.x86_64 0:0-2.r9153.el6                                                  
 
Complete!

Arch Linux 用户,输入以下命令安装agedu:
$ sudo yaourt -S agedu
MacOS X 用户,键入以下命令安装ageu。 确保在 macOS 上安装 Homebrew,然后键入以下 brew 命令:
$ brew install agedu

示例输出:

==> Downloading https://homebrew.bintray.com/bottles/agedu-20160920.sierra.bottl
Already downloaded: /Users/veryv/Library/Caches/Homebrew/agedu-20160920.sierra.bottle.tar.gz
==> Pouring agedu-20160920.sierra.bottle.tar.gz
?  /usr/local/Cellar/agedu/20160920: 5 files, 119.1K

如何使用agedu 命令?

首先,你需要扫描你的磁盘并建立一个包含特殊数据结构的索引文件,输入:
$ agedu -s /home/vivek
$ sudo agedu -s /var
$ agedu -s /nas05

示例输出:

Built pathname index, 103484 entries, 8642180 bytes of index                                                                                                 
Faking directory atimes
Building index
Final index file size = 23654856 bytes

在上面的示例中,我通过告诉它扫描目录树并为 /home/vivek、/var 和 /nas05 目录建立索引来启动 agedu。 接下来,逻辑步骤是通过键入以下命令来查询索引:
$ agedu -w

示例输出:

Using Linux /proc/net magic authentication
URL: https://127.0.0.1:42113/

启动图形网络浏览器,输入以下网址:
https://127.0.0.1:42113/

示例输出:

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

$ agedu -w --address addr[:port]
$ agedu -w --address 192.168.1.5:9000

您还可以控制对其服务的网页的访问:

$ agedu -w --address 192.168.1.5:9000 --auth basic

示例输出:

Username: agedu
Password: 696cv6r297upqzmt
URL: https://192.168.1.5:9000/

agedu 通常会为您设置一个用户名和密码。 但是,您可以设置自己的用户名和密码:
$ agedu -w --address 192.168.1.5:9000 --auth basic --auth-fd 0

示例输出:

vivek:cAnd1Bar

身份验证详细信息应由用户名 (vivek)、冒号 (:)、密码 (cAnd1Bar)、文件结尾(按 [CTRL]+[D])。

我可以使用终端模式访问 Agedu 报告吗?

键入以下命令(将 /home/wwwroot 替换为实际路径):
$ agedu -t /home/wwwroot

示例输出:

53569312    /home/wwwroot
30427672    /home/wwwroot/logs
83997004    /home/wwwroot/images

您将在 /home/wwwroot 及其子目录中获得磁盘使用情况的摘要。 输出与 du 命令的格式大致相同。 要查看有多少旧数据,请传递 -a 选项以仅显示在特定时间之前最后访问的文件。 例如,要仅查看十二个月或更长时间未查看过的文件:
$ agedu -t /home/wwwroot -a 12m

示例输出:

2220        /home/wwwroot
2236        /home

如何仅查看 MP3 文件或 .AVI 文件占用的磁盘空间?

在当前目录下运行如下命令:
$ agedu -s . --exclude '*' --include '*.mp3'
$ agedu -s . --exclude '*' --include '*.avi'

要查看报告,请运行:
$ agedu -w

报告和前两个命令将导致从扫描中省略所有内容,但随后将 MP3 文件放回。如果您只想要这些 MP3 的一个子集,您可以通过添加再次排除其中一些,比如说, –exclude-path ‘./steviewonder/*’
$ agedu -s ~/Downloads/drm-free/music --exclude '*' --include '*.mp3' --exclude-path './steviewonder/*'

如何删除文件并再次回收磁盘空间?

就我而言, /home/vivek/iso-images/ 占用了太多空间。 我发现了较旧的 vmware-workstation、Linux / Unix iso 和二进制文件。 我只使用简单的 rm 命令删除了所有那些旧的不需要的文件并恢复了 16.5GB 磁盘空间:
$ rm ~/iso-images/vmware*
$ rm ~/iso-images/centos-4* ~/iso-images/centos-5*

如何删除 ageu 索引文件?

使用 ls 命令查看agedu 索引文件的大​​小:
$ ls agedu.dat -lh

示例输出:

-rw------- 1 vivek vivek 23M Oct 21 01:55 agedu.dat

要删除索引文件,请输入:
$ agedu -R

或者
$ rm agedu.dat

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

这篇博文让您快速了解agedu 所做的事情。 对于复杂情况,此命令具有更多选项,这些选项带有通常的 unix 命令行选项数组。 因此,我建议您阅读手册页以获取更多信息或访问 项目主页 获取最新的源代码:
$ man agedu

相关文章:

  • Unix / Linux:查看彩色文件系统磁盘空间使用情况。
  • Debian/Ubuntu Linux 删除不需要的软件包和文件以回收磁盘空间/a>。
  • MySQL bin 文件占用大量磁盘空间。

如果您有我没有提到的最喜欢的命令或 hack,请在下面的评论中告诉我们。

编者注:由于一些 xml 标记错误,您可能会错过我们之前在 rss 阅读器/电子邮件新闻信中的博客条目。 此条目位于 – Howto: Setup Linux hard disk encryption with LUKS 页面。