每日磁盘使用情况报告的Shell脚本

我正在我的本地驱动器上进行备份。 驱动器安装在/ media文件夹中。 现在我想每天运行一个cron作业,以表格的forms告诉我,某些文件夹使用了多less磁盘,以及驱动器剩下多less可用空间。

如果我可以将这些信息插入到数据库中,我可以通过locahost上的网页查看信息。

我正在使用Ubuntu 10.04。

这一行将列出它所执行的目录中的顶级目录,并打印它们以MB为单位的大小。 你可以调整它的口味。

for d in $(find . -maxdepth 1 -type d); do du -sm $d; done | sort -nk 1

简单的调整,

  1. find /dir/path – 将为指定的目录执行此操作
  2. du可以用其他的forms,这一个是在MB做一个总结
  3. 如果你的目录有空格字符,你可以在前面,
    (如Dennis进一步清理;感谢提示)
    IFS=$'\n';
    我不知何故习惯于精确过滤,而不是通过混淆; 丹尼斯有更多的想法
  4. 您可以使用sort -nrk 1按大小的降序对输出进行sorting
  5. 我错过了在那里添加-mindepth 1
    当你添加它的时候,它会跳过在结果中显示基目录( /dir/path等)的大小

这里的其他一些答案可能会给你一个很好的把它存储到数据库和显示在网页上的句柄。 我只是将其转换为CSV文件,并在浏览器中使用文件path列出摘要(但对于存储和查看大量数据而言可能不是太理想)。

[meta,编辑查询:当我编辑这个答案时,第四项在预览中显示为4
但是在实际情况中说1 任何人都知道我在这个降价失踪?
当我在第三点删除换行符时,
你需要看看以前的版本,看看我的意思是…]


基本更新(基于您的意见):

  1. 看看使用terminal进行命令行处理与Ubuntu
  2. 一旦你启动了terminal,
    转到感兴趣的目录(尝试一些示例目录),
    (也许你的Firefoxconfiguration文件例如 – cd ./mozilla
    而且,不要在该目录中尝试太多的东西,你可能会破坏你的浏览器。
  3. 现在从上面复制第一个for-loop行并将其粘贴到该terminal的命令提示符处
  4. 按下Enter
  5. 看看输出
  6. 有关如何使用命令行进行“脚本”的更多参考资料,
    Bash Shell超级用户教程

告诉我们你想从哪里得到详细的信息。

如果你想把分区上的空间作为表格,你可以直接调用

 df -h | column -t 

把这个添加到你的电子邮件地址的crontab中 列-t

对于很好的列式输出,使用POSIX输出格式,以避免使用pts /使用远程会话时的空间有限。

df -hP | 列-t