여러 대의 Linux 박스를 SSH를 통해 원격으로 관리하고 있는데, 최근에는 그 박스 중 하나가 디스크 공간을 가득 채워서 로그인한 사람은 누구나 명령을 전혀 실행할 수 없었고, 문제 해결 담당자도 SSH를 통해 로그인조차 할 수 없었습니다.
다행히 디스크가 완전히 채워지기 전에 이전 상태로 되돌려 작업할 수 있었습니다.
박스에 대한 책임은 제가 아니기 때문에 웃음은 다른 분들이 보시겠지만 기술적인 설명을 요청하신 분이 계셨습니다. 왜 이런 일이 발생합니까? ls 및 rm과 같은 간단한 명령도 실행되지 않습니다. 나는 이것이 명령을 처리하기 위한 임시 공간이 필요한 것과 관련이 있다고 생각하지만, 귀하가 제공할 수 있는 통찰력에 관심이 있을 것입니다.
답변1
나는 그것이 rm
실패할 것이라고 의심한다. 실행하면 임시 파일 사용량이 표시 rm
되지 않습니다 .strace
그러나 많은 쉘 스크립트에는 문제가 발생합니다. 예를 들어 여기 문서에 /tmp
더 이상 쓸 수 없으면(공간 부족으로 인해) 실행할 수 없습니다. 이로 인해 SSH 로그인 시도가 실패할 수 있습니다.
미래를 위해
이런 일이 다시 발생하면:
- 무슨 일이 일어나고 있는지 더 잘 이해하려면
rm
다음을 실행하는 것이 흥미로울 수 있습니다.strace
strace rm file
- 공간을 확보하기 위해 파일을 삭제하거나 외부 명령을 호출할 필요도 없습니다.
rm file
셸에서 이 작업을 수행할 수 있습니다: >file
. 이렇게 하면 파일 크기가 0으로 줄어듭니다. 그러나 inode를 해제하지는 않습니다.