跳转到主要内容

pg_statvfs

通过 statvfs 查询服务器文件系统容量与 inode 统计

概览

扩展包名版本分类许可证语言
pg_statvfs1.0STATPostgreSQLC
ID扩展名BinLibLoadCreateTrustReloc模式
6470pg_statvfs否是否是否是-

Superuser-only; checks server paths under data/log-directory rules. No preload. PostgreSQL 14-18 verified in PGSTY builds; upstream declares no major-version matrix.

版本

类型仓库版本PG 大版本包名依赖
EXTPIGSTY1.01817161514pg_statvfs-
RPMPIGSTY1.01817161514pg_statvfs_$v-
DEBPIGSTY1.01817161514postgresql-$v-pg-statvfs-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
el8.aarch64
el9.x86_64
el9.aarch64
el10.x86_64
el10.aarch64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
d12.x86_64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
d12.aarch64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
d13.x86_64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
d13.aarch64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
u22.x86_64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
u22.aarch64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
u24.x86_64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
u24.aarch64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
u26.x86_64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
u26.aarch64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0

构建

您可以使用 pig build 命令构建 pg_statvfs 扩展的 RPM / DEB 包:

pig build pkg pg_statvfs         # 构建 RPM / DEB 包

安装

您可以直接安装 pg_statvfs 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:

pig repo add pgsql -u          # 添加仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

安装
pig install pg_statvfs;          # 当前活跃 PG 版本安装
pig
pig ext install -y pg_statvfs -v 18  # PG 18
pig ext install -y pg_statvfs -v 17  # PG 17
pig ext install -y pg_statvfs -v 16  # PG 16
pig ext install -y pg_statvfs -v 15  # PG 15
pig ext install -y pg_statvfs -v 14  # PG 14
dnf
dnf install -y pg_statvfs_18       # PG 18
dnf install -y pg_statvfs_17       # PG 17
dnf install -y pg_statvfs_16       # PG 16
dnf install -y pg_statvfs_15       # PG 15
dnf install -y pg_statvfs_14       # PG 14
apt
apt install -y postgresql-18-pg-statvfs   # PG 18
apt install -y postgresql-17-pg-statvfs   # PG 17
apt install -y postgresql-16-pg-statvfs   # PG 16
apt install -y postgresql-15-pg-statvfs   # PG 15
apt install -y postgresql-14-pg-statvfs   # PG 14

创建扩展:

CREATE EXTENSION pg_statvfs;

用法

来源:

pg_statvfs 1.0 通过服务器的 statvfs 调用提供文件系统容量、inode 可用量和挂载标志。查询对象是服务器路径所在的文件系统,不是客户端目录,也不是单个关系的大小。

核心流程

安装扩展文件后,使用超级用户会话:

CREATE EXTENSION pg_statvfs;
SELECT * FROM pg_statvfs(current_setting('data_directory'));
SELECT f_frsize * f_blocks AS total_bytes,
       f_frsize * f_bavail AS available_bytes
FROM pg_statvfs(current_setting('data_directory'));

返回结果与权限

pg_statvfs(path text) 返回一条记录。f_bsize 是首选块大小,f_frsize 是块计数的单位;f_blocks、f_bfree 和 f_bavail 分别表示总块数、空闲块数及非特权用户可用块数。f_files、f_ffree 和 f_favail 描述 inode 数量;f_fsid、f_namemax 和 flags 提供文件系统标识、名称长度限制及支持的挂载标志。

C 函数显式要求超级用户权限,并在请求操作系统前检查路径。路径不存在或不可访问时会报错。扩展自身不需要预加载或重启;控制文件允许迁移模式,但未声明为受信任扩展。上游子目录没有给出完整的 PostgreSQL 主版本兼容矩阵,操作系统支持和可返回的挂载标志也存在差异。

这个页面对您有帮助吗?