Solaris os, 현재 시스템에 열려 있는 파일 수(수퍼유저 권한 없음)

Solaris os, 현재 시스템에 열려 있는 파일 수(수퍼유저 권한 없음)

다음을 사용하여 Solaris 운영 체제에서 현재 활성화되어 있고 할당된 파일 설명자의 총 수를 얻을 수 있습니다.

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

그러나 mdb에는 슈퍼유저 권한이 필요합니다.

슈퍼유저 권한 없이 동일한 작업을 수행하는 명령이 있습니까? 아니면 가능합니까?

운영 체제 정보:오라클 솔라리스 11.4 X86

답변1

정의에 따르면 일반 사용자는 루트가 소유한 파일을 볼 수 없기 때문에 열린 파일을 추가하는 명령을 실행할 수 없습니다(객체를 파괴하는 필수 권한이 ​​없는 한).

mdb 명령을 실행하려면 루트 개인 정보 보호를 적극적으로 중단하고 sudoers 파일(Solaris > 버전 11)에 사용자를 추가하거나 루트 소유 파일에 대한 읽기 액세스 권한이 있는 그룹에 사용자를 추가해야 합니다.

바라보다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

관련 정보