Solaris os,系统当前打开的文件数(无超级用户权限)

Solaris os,系统当前打开的文件数(无超级用户权限)

我可以使用以下命令获取 Solaris 操作系统中当前活动和分配的文件描述符的总数:

echo ::kmastat | sudo mdb -k| grep file_cache

但mdb需要超级用户权限。

是否有任何命令可以在没有超级用户权限的情况下执行相同的任务?或者说有可能吗?

操作系统信息:Oracle Solaris 11.4 X86

答案1

根据定义,不可能运行添加打开文件的命令,因为普通用户看不到 root 拥有的文件(除非他们具有所需的权限,这会破坏该对象)。

您必须主动破坏 root 隐私,并将用户添加到 sudoers 文件(Solaris > ver 11)以运行 mdb 命令,或者将用户添加到对 root 拥有的文件具有读取访问权限的组。

为什么 file-nr 和 lsof 对打开文件的计数不同?有关文件处理程序计数与列出打开的“文件”的信息 - 总数有所不同,具体取决于计为文件的文件夹等。

对于 Solaris,您可以按进程对打开的文件进行计数...或者您需要能够查看根文件,然后使用“lsof”:

lsof | wc -l

对于单个进程,您可以针对 PID 运行“pfiles”。看极客日记了解更多。

但是,也许可以尝试使用 ps 然后使用 pfiles:

ps -A | awk '{print $1}' | xargs pfiles

然后用 awk 将总数相加。

我也尝试使用 find,但它很混乱,因为它也列出了套接字等:

find /proc/*/fd/ * -type f | grep -v "Permission denied" | wc -l

相关内容