UNIX磁盘使用率命令示例
如何使用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;