从Shell脚本中的文本文件中过滤int,float和character

时间:2015-06-11 12:58:49

标签: bash

假设我有一个文本文件,其中包含这样的数据。 低于du - sh /home/*

生成的输出
1.5G user1
2.5G user2

等等......

现在,如果我希望将这些文件大小存储在一个数组中,并且如果用户消耗的数据超过5 Gb则将其与5 GB进行比较。我能做什么?

du命令显示主目录中每个文件夹的用法。因此,如果我希望自己被通知某些用户消耗超过5 GB。因为有很长的用户列表。识别每个用户的磁盘使用情况将非常繁琐。我想要一个shell脚本来识别home中每个目录的用法。然后我会把邮件功能通知自己超出限制。

注意:不想实施配额,因为我只想监控使用情况。

1 个答案:

答案 0 :(得分:2)

使用du' -t--threshold)选项指定您只想知道其中包含超过一定数量数据的目录:

$ du -sh -t 5G /home/*

如果您对精确到千兆字节有多大感到挑剔,请注意5G使用1024的倍数;您可能希望-t 5GB的倍数为1000,甚至可以-t 5000M来混合它们。

对于很多用户来说,使用-d 1代替-s编写内容可能会更好,以避免shell必须将*扩展为很长的列表:

$ du -h -d 1 -t 5G /home/