위치와 크기별로 나열된 가장 큰 "error_log" 파일을 찾는 방법은 무엇입니까?

위치와 크기별로 나열된 가장 큰 "error_log" 파일을 찾는 방법은 무엇입니까?

나는 약 200개의 웹사이트를 호스팅하고 있는데 그 중 일부에는 거대한 error_log 파일이 있다는 것을 발견했습니다.

어떤 항목이 가장 많은 공간을 차지하고 있는지 확인하여 검토하고 오류를 수정하여 크기가 너무 빨리 커지지 않도록 하고 싶습니다.

위치와 크기별로 나열된 가장 큰 "error_log" 파일을 찾는 방법은 무엇입니까?

답변1

이런 것을 시도해 보셨나요?

ls -lsR /var/log | sort -n | tail

이것이 작동하는지 여부는 로그 디렉터리의 구조와 파일 이름에 따라 달라집니다. 이 명령은 디렉토리 경로가 아닌 가장 큰 10개의 파일 이름만 알려줍니다.

또 다른 옵션은 크기가 1GB보다 큰 모든 파일을 찾아 전체 경로를 인쇄하는 것입니다.

find /var/log -size +1G -exec ls -lh {} +

가장 큰 로그 파일보다 약간 작게 크기를 조정하면 됩니다.

이러한 파일이 어디에 있는지 모르는 경우 error_log(다른 질문으로 판단할 때) 해당 파일을 사용 locate error_log하거나 find / -name error_log찾을 수 있습니다. -name error_log위 명령에 매개변수를 추가 할 수도 있습니다 find.

답변2

이 명령을 사용하면 디렉토리의 모든 파일 목록과 더 깊은 파일의 목록을 볼 수 있습니다 du.

그 사용법의 예는 다음과 같습니다.

# du -h
46K     ./R/win-library/3.0/colorspace/data
236K    ./R/win-library/3.0/colorspace/doc
63K     ./R/win-library/3.0/colorspace/help
12K     ./R/win-library/3.0/colorspace/html
61K     ./R/win-library/3.0/colorspace/libs/i386
57K     ./R/win-library/3.0/colorspace/libs/x64
118K    ./R/win-library/3.0/colorspace/libs
16K     ./R/win-library/3.0/colorspace/Meta
# ....

답변3

여기 파티에 늦었는데 다들 "나는 웹사이트를 200개 정도 호스팅하고 있어.."라는 말을 놓치고 있어요.

귀하의 질문은 귀하가 PHP 오류 로그를 참조한다고 가정하는 error_log 파일을 찾고 있음을 나타냅니다. 가장 좋은 방법은 find를 사용하는 것이며 시스템과 웹 루트 위치에 따라 다음과 같이 보일 것입니다.

find . -type f -name "error_log" -ls | sort -nr -k7

매우 큰 오류 로그를 발견하면 비교적 쉽게 수정하여 파일 크기를 크게 줄일 수 있는 PHP 경고로 가득 차 있으므로 이를 검토하는 것이 좋습니다. (출처: 가상 호스트 시스템 관리자)

답변4

이러한 error_log파일이 다음 위치 중 하나에 있고 쉘을 /var/log사용하고 있다고 가정하면 zsh다음 명령은 이러한 파일 중 가장 큰 10개의 경로 이름을 나열합니다.

printf '%s\n' /var/log/**/error_log(.OL[1,10])

glob 한정자는 (.OL[1,10])일반 파일만 .패턴( )과 일치하고 결과가 크기( )의 내림차순으로 정렬되도록 합니다 OL. 마지막으로 [1,10]glob의 상위 10개 결과를 요청합니다.

관련 정보