문제 로그 및 bash 스크립트

문제 로그 및 bash 스크립트

랙스페이스 클라우드 호스팅에서 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를 채웁니다.

이제 다음 솔루션을 원합니다. 누구든지 나를 도울 수 있다면.

  1. 서버에서 파일을 삭제하면 재부팅하지 않고도 HDD가 비워집니다.
  2. 로그는 특정 범위에 있어야 합니다. 오래된 데이터를 새 데이터로 덮어쓰는 특정 크기의 파일과 같습니다.

답변1

  1. 로그 파일을 삭제하는 것만으로는 도움이 되지 않습니다. 일반적으로 SIGHUP을 전송하여 데몬에게 로그 파일을 닫도록 지시해야 합니다.
  2. logrotate로그를 처리해야 하며 다양한 기준을 사용하여 로그 회전 시기를 결정할 수 있습니다.
  3. 로그가 가득 차고 있습니다끔찍한빠른. 무엇이 로그를 가득 채우고 있는지 파악하고, 처리 및 저장을 위해 로그를 다른 시스템으로 보내거나, 영향을 받는 유일한 볼륨이 되도록 /var/log에 별도의 볼륨을 마운트하십시오.

답변2

어떤 로그가 디스크를 채우고 있는지 알아내야 합니다. 어떤 로그가 문제인지 알게 되면 해당 로그를 살펴보고 로그가 왜 그렇게 빠르게 증가하는지 확인하십시오.

너무 많은 정보가 기록되고 있습니까? 애플리케이션의 로깅 수준을 줄입니다.
많은 오류가 기록되고 있습니까? 조사하고 수정하세요.
...

로그를 제어할 수 있게 되면 logrotate로그를 관리하는 데 사용할 수 있습니다.

관련 정보