내 서버의 CPU 사용량이 비정상적으로 많아서 Apache가 너무 많은 메모리를 사용하고있는 것을 볼 수 있습니다. 나는 하나의 IP 주소로 DOS를하고 있다고 느끼고 있습니다. 아마 그를 찾을 수있게 도와 줄 수 있습니까? 은 "평균"사용자로, 상위 5 IP를 서버에 약 200 배 많은 요청이날짜 범위를 기준으로 로그 파일 항목 필터링
cat access.log | awk '{print $1}' |sort |uniq -c |sort -n |tail
:
나는 10 대 "활성"IP를 찾기 위해, 다음 줄을 사용했습니다 . 그러나, 나는이 방문자가 단지 아주 빈번한 방문자인지 또는 서버를 공격 하는지를 알 수 없다.
위의 검색을 시간 간격으로 지정하는 방법이 있습니까 (예 : 지난 2 시간 또는 오늘 10-12시 사이?
건배!
2011 10월 23일 업데이트 - 명령은 내가 필요 :
마지막 X 시간 [여기에 두 시간]에서 항목을 가져
awk -vDate=`date -d'now-2 hours' +[%d/%b/%Y:%H:%M:%S` ' { if ($4 > Date) print Date FS $4}' access.log
가져 오기 여기에 마지막 X 시간 [이 내 가장 활발한 IP를 시간]
awk -vDate=`date -d'now-2 hours' +[%d/%b/%Y:%H:%M:%S` ' { if ($4 > Date) print $1}' access.log | sort |uniq -c |sort -n | tail
는 상대적으로 시간 범위
를 내 항목을 가져 오기awk -vDate=`date -d'now-4 hours' +[%d/%b/%Y:%H:%M:%S` -vDate2=`date -d'now-2 hours' +[%d/%b/%Y:%H:%M:%S` ' { if ($4 > Date && $4 < Date2) print Date FS Date2 FS $4}' access.log
받기 절대 시간 범위 내에서 항목
awk -vDate=`date -d '13:20' +[%d/%b/%Y:%H:%M:%S` -vDate2=`date -d'13:30' +[%d/%b/%Y:%H:%M:%S` ' { if ($4 > Date && $4 < Date2) print $0}' access.log
가져 오기 절대 시간 범위 내에서 가장 활동적인 IP를
awk -vDate=`date -d '13:20' +[%d/%b/%Y:%H:%M:%S` -vDate2=`date -d'13:30' +[%d/%b/%Y:%H:%M:%S` ' { if ($4 > Date && $4 < Date2) print $1}' access.log | sort |uniq -c |sort -n | tail
나는 게으르다. 나는 로그를 엑셀로 복사하고 피봇 테이블을 생성합니다 ... – Ben
@Ben "이제 두 가지 문제가 있습니다." – tripleee