파일을 삭제하면 사용 가능한 공간이 늘어나지 않나요?

파일을 삭제하면 사용 가능한 공간이 늘어나지 않나요?

운영체제는 데비안입니다. 출력 df -h /:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       99G  97G  0   100% /

lsof/var/log/syslog파일 핸들이 열려 있지만 /var/log/syslog.7.gz.

/var/log/syslog.7.gz그래서 수십 메가바이트의 디스크 공간을 확보하기 위해 삭제했습니다 .

다시 출력 df -h /:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       99G  97G  0   100% /

/var/log의 일부 파일에서 이것을 시도했습니다. 먼저 lsof를 사용하여 파일 핸들이 열려 있지 않은지 확인한 다음 제거를 시도하고 즉시 df를 확인했지만 avail은 여전히 ​​0이었습니다. 다양한 크기의 다양한 파일을 사용하여 이 작업을 수행하세요. 그러나 -h 없이 df를 실행하면 "사용된" 공간이 줄어드는 것을 볼 수 있으므로 최소한 그게 전부입니다.

여기서 무슨 일이 일어나고 있는 걸까요? 다시 시작하지 않고 "사용 가능한" 양을 늘리려면 어떻게 해야 합니까?

답변1

몇 가지 문제:

  1. -h숫자가 기가바이트 단위인 경우 "수십 메가바이트"의 절약 효과는 사람이 읽을 수 있는 출력에 표시되지 않습니다.
  2. 삭제했지만 다른 프로세스에서 아직 열려 있는 파일이 여전히 존재합니다. 이는 프로그램에서 아직 열려 있는 로그 파일을 삭제하려고 하면 발생할 수 있습니다.
  3. root대부분의 Linux 파일 시스템에는 사용자(및 대부분의 데몬) 만 채울 수 있는 "예약된" 공간이 있습니다 . 해방되더라도일부공간이 부족하면 일반 사용자는 여전히 파티션에 쓸 수 없습니다. 비슷한 방법을 사용하여 tune2fs예약된 금액을 확인할 수 있습니다.

답변2

df-h귀하의 경우 표시된 데이터는 Gb 단위입니다. 삭제된 여러 Mb 파일은 여기에 표시되지 않습니다.

말씀하신 대로 그렇지 않으면 -h사용된 공간이 줄어들게 됩니다. 그래서 공간을 되찾고 있는 것입니다. 그것만으로는 충분하지 않습니다.

삭제되었지만 아직 사용 중인 대용량 파일을 찾고( lsof | grep deleted여기서 도움을 받을 수 있음) 프로세스를 다시 시작하여 대용량 파일을 열어야 합니다.

대용량 파일도 찾아야 합니다.할 수 있는예를 들어 find / -xdev -size +500M -ls500Mb보다 큰 루트 파티션의 모든 파일이 검색됩니다. 100Gb 파일 시스템에서는 시간이 좀 걸릴 수 있지만 낭비되는 대용량 파일을 찾는 좋은 방법입니다!

시도해 볼 수 있는 몇 가지 단축키가 있습니다. 예를 들어 를 검색하면 /tmp에서 /var 많은 내용을 볼 수 있으며 /var, 특히 패키지를 다운로드하여 apt삭제할 수 있으므로 du -hs /var/* | sort -h때로는 유용합니다.

관련 정보