假设所有类型的 UNIX 和 Linux 中的操作系统始终位于 /usr 中,这样正确吗?
我正在编写一个脚本,用于检查操作系统文件系统中的可用空间,并且我希望它适用于所有类型(RedHat,Solaris,AIX,SGI,Suse,CentOS等...)。
谢谢
答案1
不幸的是,对于您提出的问题没有通用的答案。
原因是 Linux 和 Unix 系统允许完全自由地在一个或多个分区(本地或远程)上安装操作系统的各个部分。
除了分区自由之外,一些系统管理员经常创建指向众所周知的(即 FHS)操作系统目录名(例如/usr/local
跨分区)的符号链接。因此,操作系统实际上可以分布在多个文件系统上。这意味着,在一般情况下,实际上不存在“操作系统文件系统”的概念。
一个极端的例子是运行联合文件系统60MiB 的 RAM 磁盘。在这种情况下,总共有 60MiB 的可用空间,但仅在操作系统运行时才存在。
答案2
这跳频可能会有用,但由于实现可能不完全遵守它,你可能需要仔细检查。
您基本上需要检查/, /usr, /var
(在大多数系统上/bin
,并且/sbin
位于/
且未安装在单独的文件系统上)。在 SuSE 桌面环境中,一些较大的软件包可能会最终位于其中/opt
,因此您可能也需要检查这一点。
答案3
df(1)
只需在您要写入的实际路径上使用该工具即可:
$ df /usr/here-is-where-i-want-to-be/
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 70105504 13177408 56928096 19% /