랙스페이스 클라우드 호스팅에서 11개의 Debian 서버를 실행하고 있습니다. 호스팅 관리를 위해 모두 VHCS2를 실행합니다. 1개의 서버는 애플리케이션용으로 사용되고 10개는 smtp 전용으로 사용됩니다. 내 질문은 smtp 서버에 관한 것입니다. 각 서버는 1개의 도메인을 호스팅했습니다. 내 문제는 내 클라이언트가 smtp를 사용할 때 이 디렉터리에 로그가 생성된다는 것입니다.
/var/log/
그러나 24시간 이내에 드라이브가 가득 차서 서버가 모든 smtp 연결을 거부합니다. 그런 다음 로그를 삭제하고 다음 명령을 실행하여 디스크 공간을 확인했습니다.
df -h
하지만 HDD가 여전히 꽉 차 있고 서버가 여전히 smtp 연결을 거부하고 있는 것으로 표시됩니다. 그런 다음 진실을 확인하기 위해 다음 명령을 실행했습니다.
du --max-depth=1 -h
그것은 진실을 보여줍니다. 사용된 실제 디스크 공간입니다. 그런 다음 서버를 재부팅했는데 이제 서버가 제대로 작동합니다. 그러나 몇 시간 후에도 같은 상황이 발생했습니다. 그런 다음 다음 스크립트를 만들었습니다.
#!/bin/sh
rm -fr /var/log/*
rm -fr /var/log/apache2/*.log
rm -fr /var/log/apache2/*.log.*
rm -fr /var/log/apache2/users/*
rm -fr /var/log/apache2/backup/*
reboot
며칠 동안 작동했지만 그 후 로그가 다시 HDD를 채웁니다.
이제 다음 솔루션을 원합니다. 누구든지 나를 도울 수 있다면.
- 서버에서 파일을 삭제하면 재부팅하지 않고도 HDD가 비워집니다.
- 로그는 특정 범위에 있어야 합니다. 오래된 데이터를 새 데이터로 덮어쓰는 특정 크기의 파일과 같습니다.
답변1
- 로그 파일을 삭제하는 것만으로는 도움이 되지 않습니다. 일반적으로 SIGHUP을 전송하여 데몬에게 로그 파일을 닫도록 지시해야 합니다.
logrotate
로그를 처리해야 하며 다양한 기준을 사용하여 로그 회전 시기를 결정할 수 있습니다.- 로그가 가득 차고 있습니다끔찍한빠른. 무엇이 로그를 가득 채우고 있는지 파악하고, 처리 및 저장을 위해 로그를 다른 시스템으로 보내거나, 영향을 받는 유일한 볼륨이 되도록 /var/log에 별도의 볼륨을 마운트하십시오.
답변2
어떤 로그가 디스크를 채우고 있는지 알아내야 합니다. 어떤 로그가 문제인지 알게 되면 해당 로그를 살펴보고 로그가 왜 그렇게 빠르게 증가하는지 확인하십시오.
너무 많은 정보가 기록되고 있습니까? 애플리케이션의 로깅 수준을 줄입니다.
많은 오류가 기록되고 있습니까? 조사하고 수정하세요.
...
로그를 제어할 수 있게 되면 logrotate
로그를 관리하는 데 사용할 수 있습니다.