24GB의 파일이 삭제되었지만 사용 가능한 공간은 변경되지 않았습니다. 무슨 일이 일어날 수 있었나요? [복사]

24GB의 파일이 삭제되었지만 사용 가능한 공간은 변경되지 않았습니다. 무슨 일이 일어날 수 있었나요? [복사]

Apache2가 설치된 VM이 있고 로그 회전 설치를 잊어버렸으며 Apache2에서 24GB의 로그를 얻었고 이 24GB의 로그 파일을 삭제했지만 디스크에는 아무 일도 일어나지 않았습니다. 삭제하지 않은 것처럼 로그가 전혀 없습니다. . 무슨 일이 일어날지 이해하는 사람 있나요?

root@Web:~# cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04.4 LTS"

root@Web:~# df -kh
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              29G   27G  675M  98% /
none                  744M  176K  744M   1% /dev
none                  748M     0  748M   0% /dev/shm
none                  748M  568K  748M   1% /var/run
none                  748M     0  748M   0% /var/lock
none                  748M     0  748M   0% /lib/init/rw
none                   29G   27G  675M  98% /var/lib/ureadahead/debugfs

root@Web:~# du -kh /var/log/apache2
24G     /var/log/apache2

root@Web:~# rm /var/log/apache2/*

root@Web:~# du -kh /var/log/apache2
4.0K    /var/log/apache2

root@Web:~# df -kh
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              29G   27G  673M  98% /
none                  744M  176K  744M   1% /dev
none                  748M     0  748M   0% /dev/shm
none                  748M  568K  748M   1% /var/run
none                  748M     0  748M   0% /var/lock
none                  748M     0  748M   0% /lib/init/rw
none                   29G   27G  673M  98% /var/lib/ureadahead/debugfs

답변1

이는 실제로 파일을 삭제하지 않았기 때문일 가능성이 높습니다.
내가 생각하는 일은 다음과 같습니다.

  1. 로그 파일을 생성하고 파일 핸들을 사용하여 로그 파일에 프로그램(읽기: Apache)을 씁니다.
    파일은 디렉터리 목록에도 표시됩니다.
  2. rm다음과 같은 방법을 사용하여 파일을 삭제하려고 합니다.그리고 Apache는 여전히 그것을 엽니 다.
  3. 이제 이러한 파일은 부분적으로 삭제되었습니다. 디렉토리 목록이 사라졌습니다. 그러나 파일은 여전히 ​​존재하며 해당 파일에 대한 모든 핸들이 닫힐 때까지 디스크에 남아 있습니다.

가장 간단한 방법은 SIGHUP 신호를 Apache에 보내 Apache를 다시 시작하는 것입니다. (HUP를 Apache에 보내면 정상적으로 다시 시작하라는 메시지가 나타나며 이로 인해 로그 파일이 닫히거나 다시 열립니다.) 다음과 같은 명령을 보내면 됩니다 kill -1(참조:사람들을 죽이다더 많은 정보를 알고 싶다면).

답변2

로그를 삭제했지만 Apache는 파일을 열어 두었습니다.

다시 로드하지 않고 다시 시작하면 해당 공간이 회수됩니다.

다음번에는 > logfile로그를 삭제하는 대신 로그를 사용하거나 잘라낼 수 있습니다.cat /dev/null > logfile

관련 정보