du 명령은 오류와 결과를 모두 제공합니다.

du 명령은 오류와 결과를 모두 제공합니다.

du폴더는 제대로 작동 하지만 VPS의 디스크 공간을 알고 싶습니다.

$ du -sh /home/
325M    /var/

그러나 전체 VPS를 얻으려고 하면 이런 결과가 나왔습니다.

[root@user/]# du -sh
du: cannot access `./proc/18097/task/18097/fd/4': No such file or directory
du: cannot access `./proc/18097/task/18097/fdinfo/4': No such file or directory
du: cannot access `./proc/18097/fd/4': No such file or directory
du: cannot access `./proc/18097/fdinfo/4': No such file or directory
1.3G    .

공간은 1.3G라고 가정했는데 왜 오류가 나나요? 어떻게 해결할 수 있나요?

답변1

고칠 필요가 없습니다. 고장난 것이 아닙니다. 이는 사용할 수 없는 커널 파일 객체에 대한 참조입니다 du. 이는 파일 설명자와 관련된 일반적인 경쟁 조건입니다. 어쨌든 공간을 차지하지 않아( /proc그 문제에 관해서도 마찬가지입니다)디스크에 있지 않기 때문에 커널 파일 설명자에 대한 임시 참조일 뿐입니다. 그들은 인용하거나익명 파이프/소켓- 따라서 stat파일 이름이 없기 때문에 할 수 없습니다. 또는 du발견된 시간과 시도된 시간 사이에 stat더 이상 존재하지 않거나 du애초에 그렇게 할 수 있는 권한이 없었습니다. 아마도 du자체 파일 설명자일 가능성이 높습니다.

그러나 여러 파일 시스템 마운트를 처리하기 때문에 명령에 문제가 있을 수 있습니다. 이는 의도한 것이 아닐 수 있으므로 다음을 사용할 수 있습니다.

du -shx

...현재 작업 디렉터리의 루트 마운트에 있는 파일만 처리합니다. /proc완전히 별개의 파일 시스템이고 /해당 파일 시스템을 실행하기 위해 별도로 설치되기 때문에 속하지 않는 다른 모든 파일 시스템을 /제외합니다 ./proc

또한 여러 파일 시스템 마운트를 실제로 나열하려면 다음을 수행할 수 있습니다.

du -sh 2>/dev/null

관련 정보