UNIX 磁盘使用命令示例
如何使用 GUI、CLI 和 Perl/shell 程序查找 UNIX 操作系统下的磁盘使用情况?
您需要使用名为du 的
命令行实用程序来显示文件系统块使用情况。在此示例中,找出 /tmp 目录磁盘使用情况统计信息(打开终端并输入以下命令):
$ du /tmp
示例输出:
4 /tmp/vmware-root 8 /tmp/pulse-xc7xdoM9vB2K 4 /tmp/.X11-unix 4 /tmp/keyring-7qXGnQ 4 /tmp/.exchange-vivek 4 /tmp/.winbindd 8 /tmp/plugtmp 4 /tmp/virtual-vivek.C81Sd0 4 /tmp/VMwareDnD 4 /tmp/ssh-mhNeIv1961 4 /tmp/.ICE-unix 8 /tmp/orbit-vivek 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-vivek 4.0K /tmp/.winbindd 8.0K /tmp/plugtmp 4.0K /tmp/virtual-vivek.C81Sd0 4.0K /tmp/VMwareDnD 4.0K /tmp/ssh-mhNeIv1961 4.0K /tmp/.ICE-unix 8.0K /tmp/orbit-vivek 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/vivek/mp3/
- 开始完整的文件系统扫描
- 选择要扫描的特定本地目录分支
- 选择要扫描的远程服务器和文件夹等
要开始完整的文件系统扫描,请从菜单中选择 Analyzer > Scan Filesystem,或按下 Scan Filesystem 工具栏按钮。磁盘使用情况分析器将在目录树中显示分配的空间大小。这意味着显示的大小指的是实际磁盘使用情况,而不是表观目录大小。如果要查看表观文件大小,请取消选中 View > Allocated Space 。
NCurses 磁盘使用情况
ncdu (NCurses Disk Usage) 是著名的 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;
Shell 脚本
您可以使用 shell 脚本监控 UNIX / Linux 磁盘空间使用情况,如果空间百分比 <= 95%,则发送电子邮件警报。