pg_ls_logdir()

用于检查日志目录内容的系统函数

pg_ls_logdir() 是一个用于检查 PostgreSQL 日志目录内容的系统函数,该目录由配置参数 log_directory 定义。

pg_ls_logdir()PostgreSQL 10 中添加。

用法

pg_ls_logdir () → setof record ( name text, size bigint, modification timestamp with time zone )

pg_ls_logdir() 返回一组记录,其中包含 log_directory 中文件的名称、大小和上次修改时间戳。

它返回未排序的文件记录,因此通常与 ORDER BY 结合使用。

请注意,pg_ls_logdir() 将返回日志目录中的所有文件,无论它们是否实际上是日志文件。但是,与 pg_ls_dir() 不同,它不返回以点开头的文件名、目录和其他特殊文件。

权限

默认情况下,pg_ls_logdir() 仅限超级用户和 pg_monitor 默认角色 的成员使用,但其他用户可以被授予 EXECUTE 权限以运行此函数。

源代码

pg_ls_logdir()src/backend/utils/adt/genfile.c 中实现。

更改历史记录

示例

选择 log_directory 中的五个最新文件

postgres=# SELECT * FROM pg_ls_logdir() ORDER BY modification DESC LIMIT 5;
               name               | size  |      modification      
----------------------------------+-------+------------------------
 postgresql-2020-12-24_000000.log |  5946 | 2020-12-24 02:27:10+01
 postgresql-2020-12-23_000000.log | 48825 | 2020-12-23 23:51:25+01
 postgresql-2020-12-22_000000.log | 48512 | 2020-12-22 23:51:18+01
 postgresql-2020-12-21_000000.log | 48748 | 2020-12-21 23:51:27+01
 postgresql-2020-12-20_000000.log | 48405 | 2020-12-20 23:51:02+01
(5 rows)

请注意,由 log_directory 指定的目录可能不存在(例如,如果 log_destination 设置为 syslog,并且该目录从未初始化),在这种情况下,将引发 ERROR

postgres=# SELECT pg_ls_logdir();
ERROR:  could not open directory "log": No such file or directory

分类

数据目录文件访问和操作系统函数

另请参阅

pg_ls_dir()pg_ls_tmpdir()pg_ls_waldir()pg_ls_archive_statusdir()log_directory

反馈

提交关于“pg_ls_logdir()”的任何评论、建议或更正 此处