나는 약 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개 결과를 요청합니다.