如何处理 EC2 上的最大容量。

How to handle maxed out volume on EC2.

我们的一台服务器有一个目录 disk2,它已满 95%。但是,当我 运行 命令确定大部分 space 被使用的地方时,它显示它是 int /disk2/backups - 显然安装在不同的更大设备上的不同文件系统上,而且只有 31% 满。这是这两个设备的 DU 命令的输出:

Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/xvdb       51475068 46084284   2752960  95% /disk2
/dev/xvdf      154687468 45454904 101352500  31% /disk2/backups

/dev/xvdb 达到 95% 让我很紧张,因为它是生产服务器。我认为它一直在增长,因为我以前没有注意到它。清理备份之前已经解决了这个问题,但我认为这次是在不同的设备上。

我无法确定主要 space 用途在哪里,部分原因是当我 运行 在 /disk2 上衡量时,备份一直显示为最大的文件。当我深入到不在 /backups 中的 disk2 目录时,似乎没有什么大的。

此外,du 发布的标题为“1 k 块”。这是否意味着数字应该乘以 1k?它是否适用于使用过的可用列?我认为它一定是字节的意思,因为第一卷是 50G,第二卷是 150G。

通常我会用

 cd /disk2
 du -sm * | sort -n

让最大的 dirs/files 出现在底部。

因为备份目录可能需要很长时间才能扫描而没有额外的价值, 我会试试

  cd /disk2
  du -sm !(backups) | sort -n

!(backups) 是一个 shell glob,其工作方式与 * 类似,只是在这种情况下它将从返回的列表中排除 backups

恕我直言,!(target) 语法并不十分直观。例如,如果您执行 !(backups)*,那么您将再次获取所有文件,并且将扫描备份。只是一个警告。

也许另一个 reader 可以 post 一个 link 使用高级 shell glob 的教程。

IHTH