UNIX磁盘使用率命令示例

时间:2020-01-09 10:45:51  来源:igfitidea点击:

如何使用GUI,CLI和Perl/shell程序找出UNIX操作系统下的磁盘使用情况?
您需要使用命令行工具du来显示文件系统块的使用情况。
在此示例中,查找/tmp dir磁盘使用情况统计信息(打开终端并输入以下命令):

$ du /tmp

输出示例:

4	/tmp/vmware-root
8	/tmp/pulse-xc7xdoM9vB2K
4	/tmp/.X11-unix
4	/tmp/keyring-7qXGnQ
4	/tmp/.exchange-Hyman
4	/tmp/.winbindd
8	/tmp/plugtmp
4	/tmp/virtual-Hyman.C81Sd0
4	/tmp/VMwareDnD
4	/tmp/ssh-mhNeIv1961
4	/tmp/.ICE-unix
8	/tmp/orbit-Hyman
4	/tmp/.esd-1000
31644	/tmp

-h选项提供了人类可读的输出,即您将以字节,千字节,兆字节,千兆字节,兆兆字节和千万兆字节的形式查看它:

$ du -h /tmp

输出示例:

4.0K	/tmp/vmware-root
8.0K	/tmp/pulse-xc7xdoM9vB2K
4.0K	/tmp/.X11-unix
4.0K	/tmp/keyring-7qXGnQ
4.0K	/tmp/.exchange-Hyman
4.0K	/tmp/.winbindd
8.0K	/tmp/plugtmp
4.0K	/tmp/virtual-Hyman.C81Sd0
4.0K	/tmp/VMwareDnD
4.0K	/tmp/ssh-mhNeIv1961
4.0K	/tmp/.ICE-unix
8.0K	/tmp/orbit-Hyman
4.0K	/tmp/.esd-1000
33M	/tmp

df:显示可用磁盘空间

要显示有关指定文件系统或者文件所在的文件系统上的可用磁盘空间量的统计信息,请使用df命令,如下所示:

$ df

$ df -h

输出示例:

Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/wd0a      938M   43.0M    848M     5%    /
/dev/wd0e      817M    2.0K    776M     0%    /home
/dev/wd0d      2.9G    573M    2.2G    20%    /usr

GUI工具:磁盘使用情况分析器(Gnome版本)

磁盘使用情况分析器是一个菜单驱动的图形化应用程序,用于分析任何UNIX/Linux/BSD Gnome桌面环境中的磁盘使用情况。
磁盘使用情况分析器可以轻松地扫描整个文件系统树或者特定于用户请求的目录分支(本地或者远程)。
要启动此工具,请访问Gnome菜单,单击>应用程序>附件>选择磁盘使用分析器。
或者,您可以从终端窗口启动磁盘使用分析器,只需执行:

baobab

baobab /path/to/dir

baobab /home/Hyman/mp3/

输出示例:

用于检查UNIX/Linux/BSD磁盘空间的GUI命令

现在你可以:

  • 开始完整的文件系统扫描
  • 选择一个特定的本地目录分支进行扫描
  • 选择要扫描的远程服务器和文件夹等

要开始完整的文件系统扫描,请从菜单中选择分析器>扫描文件系统,或者按"扫描文件系统"工具栏上的按钮。
磁盘使用情况分析器将在目录树中显示已分配空间的大小。
这意味着显示的大小是指实际的磁盘使用情况,而不是表观的目录大小。
如果要查看表观文件大小,请取消选中"视图">"分配的空间"。

NCurses磁盘使用情况

ncdu(NCurses磁盘使用情况)是众所周知的du的基于curses的版本,它提供了一种快速的方法来查看正在使用哪些磁盘空间的目录。
您可以在Debian/Ubuntu Linux下按以下方式安装它:

$ sudo apt-get install ncdu

要在FreeBSD下安装端口,请执行::

# cd /usr/ports/sysutils/ncdu/ && make install clean

或者

# pkg_add -r ncdu

只需在shell提示符下执行ncdu即可:

$ ncdu

Python示例代码

您还可以如下使用python:

#!/usr/bin/python
import os
size = os.statvfs('/')
output=(size.f_bavail * size.f_frsize) / 1024
print "Available disp space" ,output, "k"

Perl示例代码

Perl也可以用来查找磁盘空间:

#!/usr/bin/perl
use strict;
use warnings;
use Filesys::DiskSpace;
my $dir = "/home";
my ($fs_type, $fs_desc, $used, $avail, $fused, $favail) = df $dir;
my $df_free = (($avail) / ($avail+$used)) * 100.0;
my $out = sprintf("Disk space on $dir: %0.2f\n",$df_free);
print $out;