“df”및“du”명령이 다른 디스크 사용량을 표시하는 이유는 무엇입니까?


26

내 PC에서 우분투 시스템에 액세스 할 수 없습니다. " 시스템이 낮은 그래픽 모드에서 실행 중입니다 "라는 오류 메시지 나타나고 인터넷에서 검색 한 일부 명령을 시도했습니다.

사용 가능한 디스크 공간이없는 것 같습니다. " df "및 " du "명령을 사용하여 확인한 결과는 다음과 같습니다.

du -j --max-depth=1
23G  ./home
3.3G ./usr 
...... 
28G

df -Th 
filesystem   Type   size    used   available   use%    mounted on 
/dev/sda5    ext4   68G     68G    0           100%    /

디스크 공간을 늘리기 위해 시스템을 어떻게 정리합니까?


제목과 질문 본문의 질문은 매우 다릅니다. 어떤 대답은 한 질문과 관련이 있고 어떤 질문은 다른 질문과 관련이 있습니다. 당신은 당신의 실제 필요를 분명히하고 아마도 대답을 받아 들여야 합니다.
Melebius

답변:


50

아마도 일부 응용 프로그램에서 여전히 사용중인 파일을 제거 할 수 있으며이 응용 프로그램에서는 계속 사용할 수 있습니다. / proc / 파일 시스템의 파일 디스크립터가 열려 있기 때문입니다.

그래서 이미 제거 된 파일에 같은 개방 설명이있는 경우, 공간에서 사용으로 간주 그들에 의해 점령 df(및 df권리), 그러나 그들은에 의해 고려 될 수없는 du그들과 관련된 더 이상 파일 이름이없는 때문에.

연결되지 않았지만 열린 파일은 모두 다음을 통해 찾을 수 있습니다.

# lsof | grep '(deleted)'

7
이것은 단지 나를 구했다. 내 디스크가 꽉 찬 이유를 몰랐지만 du는 디스크가 비어 있다고 말했습니다. 8GB 파일을위한 열린 파일 핸들
Cheyne

5
링크를 어떻게 삭제합니까?
Vikas Hardia

1
때로는 다른 사용자의 프로세스에 의해 열린 삭제 된 파일을 보려면 루트로 이것을 실행해야합니다.
Envek

1
나를위한 이것의 근본 원인은 내 /etc/logrotate.d파일 중 하나에서 잘못된 로그 파일 사양이되었습니다 . 잘못된 항목에 postrotate 루틴이 누락되어 데몬 프로세스가 회전 / 삭제 된 파일을 놓지 못하게했습니다.
데일 앤더슨

연결되지 않았지만 열린 파일을 어떻게 제거 할 수 있습니까?
zx1986

14

링크를 어떻게 삭제합니까? – Vikas Hardia 8 월 22 일 14 : 5:46

파일 핸들을 보유한 프로세스를 찾아야합니다. Dmitry Alexandrov의 명령을 사용하면 프로세스와 pid를 볼 수 있습니다. 우리의 경우에는 "오래된"니스 로그 파일이 스페이스 킬러였습니다.

# lsof | grep '(deleted)'
[...]
varnishlo 13978       varnishlog    3w      REG              252,1 318448027646    5926973 /var/log/varnish/varnish.log.1 (deleted)
apache2   16801         www-data    2w      REG              252,1        64550   13110120 /var/log/apache2/error.log.1 (deleted)
[...]
# service varnishlog stop
[or if there is no service script]
# kill -11 13978 (the second number of the lsof command is the pid)
[or may be] 
# kill -9 13978

컴퓨터의 악마 또는 다른 서비스 인 경우 서비스를 시작하거나 다시 시작하는 것을 잊지 마십시오. 가능하다면 컴퓨터를 재부팅하십시오.)


9

좋아, 맨 페이지를 확인하자 :

df-보고서 파일 시스템 디스크 공간 사용량

du- 파일 공간 사용량 추정

이 두 도구는 다른 제안을위한 것입니다. 하지만 df파일 시스템 사용량을 보여주는 것입니다, du파일 공간 사용량을보고하는 것입니다. 커널은 파일 시스템 수준에서 작동 du하면서 df커널이 사용 가능한 기능을보고합니다. du맨 페이지 지원을 계속 읽으십시오 .

디렉토리 에 대해 각 FILE 의 디스크 사용량을 재귀 적으로 요약 합니다.

du파일과 함께 작동 한다고 말합니다 .

df각 파일 이름 인수를 포함 하는 파일 시스템 에서 사용 가능한 디스크 공간을 표시합니다 . 파일 이름을 지정하지 않으면 현재 마운트 된 모든 파일 시스템에서 사용 가능한 공간이 표시됩니다.

여기 df에서는 파일이 아니라 파일 시스템 자체에 신경 쓰지 않습니다.


du 사용법은 -x 문자로 수정하여 주어진 파일 시스템의 파일 만 계산하도록 지시 할 수 있습니다.
macetw

1

간단히 말해서 :

du루트 권한없이 실행했습니다 . 에서 사용 가능한 공간을 확인 할 수 없습니다 그래서 /proc, /mnt등, 폴더.

df 총 사용 공간 및 여유 공간을 각각 표시했습니다.

따라서 Linux 루트 파일 시스템을 확인할 때 du보고서를 최종으로 가져 가십시오 .


0
df

사용 가능한 디스크 공간 요약

사용 가능한 디스크 공간이 표시됩니다.

du

디스크 사용량을 요약합니다.

사용 된 디스크 공간을 표시합니다.


예. 그러나 "df -Th"결과 68G가 사용되었습니다. 오늘 아침에 우분투 시스템에 액세스하려고 할 때 여전히 "시스템이 낮은 그래픽 모드에서 실행 중"이라는 메시지가 표시되지만 메모리 사용량을 확인할 때 "df"및 "du"명령은 합리적인 결과를 보여줍니다. 그러나 "낮은 그래픽 모드"의 문제점은 무엇입니까?
user2068965

이것 좀보세요 .
Mitch

0

그다지 혼란스럽지 않은 것은 : Here is look : =

1) du == 디스크 사용량
이 파일들이 사용하는 디스크 공간은 얼마입니까?

2) df == 디스크
여유 공간 여유 공간이 얼마나됩니까?

또한 시스템이 낮은 그래픽 모드 ' 여기 ' 에서 실행되고있는 경우


0

내가 했어
sudo du -hxa / | egrep '^[[:digit:]]{1,1}G[[:space:]]*'

내가보고있는 21GB의 큰 불일치를 정확히 설명했습니다!
문제의 파일은 21GB면 / swap 파일이었습니다 !!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.