명령을 실행하는 데 디스크 공간이 필요한 이유

명령을 실행하는 데 디스크 공간이 필요한 이유

여러 대의 Linux 박스를 SSH를 통해 원격으로 관리하고 있는데, 최근에는 그 박스 중 하나가 디스크 공간을 가득 채워서 로그인한 사람은 누구나 명령을 전혀 실행할 수 없었고, 문제 해결 담당자도 SSH를 통해 로그인조차 할 수 없었습니다.

다행히 디스크가 완전히 채워지기 전에 이전 상태로 되돌려 작업할 수 있었습니다.

박스에 대한 책임은 제가 아니기 때문에 웃음은 다른 분들이 보시겠지만 기술적인 설명을 요청하신 분이 계셨습니다. 왜 이런 일이 발생합니까? ls 및 rm과 같은 간단한 명령도 실행되지 않습니다. 나는 이것이 명령을 처리하기 위한 임시 공간이 필요한 것과 관련이 있다고 생각하지만, 귀하가 제공할 수 있는 통찰력에 관심이 있을 것입니다.

답변1

나는 그것이 rm실패할 것이라고 의심한다. 실행하면 임시 파일 사용량이 표시 rm되지 않습니다 .strace

그러나 많은 쉘 스크립트에는 문제가 발생합니다. 예를 들어 여기 문서에 /tmp더 이상 쓸 수 없으면(공간 부족으로 인해) 실행할 수 없습니다. 이로 인해 SSH 로그인 시도가 실패할 수 있습니다.

미래를 위해

이런 일이 다시 발생하면:

  • 무슨 일이 일어나고 있는지 더 잘 이해하려면 rm다음을 실행하는 것이 흥미로울 수 있습니다.stracestrace rm file
  • 공간을 확보하기 위해 파일을 삭제하거나 외부 명령을 호출할 필요도 없습니다. rm file셸에서 이 작업을 수행할 수 있습니다 : >file. 이렇게 하면 파일 크기가 0으로 줄어듭니다. 그러나 inode를 해제하지는 않습니다.

관련 정보