웹호스팅 서비스하는 서버에서 여러 사이트 웹로그 분석할대
webalizer 를 이용해서 분석하는데.
..
여러 사이트를 쉘스크립트 배열 기능을 이용해서
분석하게 해 봤습니다.
..
리눅스 bash 에서 배열은
ARRAY=("aa bb cc" "dd ee ff" "gg hh ii")
와 같이 선언하고 ${ARRAY[0]} 같이 참조합니다.
그런데 아직 bash 에서 2차 배열 hash 는 안되는거 같습니다.
아래와 같이
for(( i=0;i<${#ARRAY[@]}; i++))
do
TT=(${HTTPD_LOG_ARRAY[$i]})
HTTPD_LOG_STAT=${TT[0]}
HTTPD_LOG_OUTPUT_DIR=${TT[1]}
..
done
처럼 for 안에서 다시 공백문자를 기준으로
배열을 만들어서
비슷하게 2차배열 처럼 사용할 수 있습니다.
..
일단 이렇게 webalizer 로 분석하게 만든후
각서버에 설정된 웹로그파일 백업하기 바로전에 이 스크립트가
실행하게 해야 합니다.
..
보통 리눅스 배포판에서는 /etc/cron.daily/logrotate 라는 스크립트
상단에 적어주면 될겁니다.
..
그리고 webalizer.conf 에서
webalizer.current와 webalizer.hist
부분을 주석처리 혹은
파일 명만 할것 , 그래야 각 계정으로 들어가서 함.
dnscache 부분도 0 으로 처리.
..
php 를 쉘모드로 사용하는게 배열 다루기는 훨씬 쉽네요.
..
=============================================
1 #!/bin/bash
2
3 declare -a HTTPD_LOG_ARRAY
4
5 # 분석할 로그파일, 로그파일 저장 디렉토리, 호스트이름 순으로 입력
6 HTTPD_LOG_ARRAY=(
7 "/var/log/httpd/aaa.com-access_log
8 /home/aaa/public_html/weblog
9 www.aaa.com"
10
11 "/var/log/httpd/bbb.com-access_log
12 /home/bbb/public_html/weblog
13 www.bbb.com"
14
15 "/var/log/httpd/ccc.com-access_log
16 /home/ccc/public_html/weblog
17 www.ccc.com"
18
19 )
20
21
22 for(( i=0;i<${#HTTPD_LOG_ARRAY[@]}; i++))
23 do
24 TT=(${HTTPD_LOG_ARRAY[$i]})
25 HTTPD_LOG_STAT=${TT[0]}
26 HTTPD_LOG_OUTPUT_DIR=${TT[1]}
27 HTTPD_LOG_HOSTNAME=${TT[2]}
28 # 아파치 로그를 읽어 hitcount 파일을 만든다.
29 if [ -f ${HTTPD_LOG_STAT} ]; then
30 if ! [ -d ${HTTPD_LOG_OUTPUT_DIR} ]; then
31 mkdir ${HTTPD_LOG_OUTPUT_DIR}
32 fi
cd ${HTTPD_LOG_OUTPUT_DIR}
33 /usr/bin/webalizer $HTTPD_LOG_STAT -o $HTTPD_LOG_OUTPUT_DIR -n $HTTPD_LOG_HOSTNAME
34
35 fi
36
37 done
게시글 목록
| 번호 | 제목 |
|---|---|
| 27925 | |
| 27922 | |
| 6972 | |
| 19602 |
JavaScript
jQuery 의 delegate 흉내내기
1
|
| 19601 |
JavaScript
script 디버깅 - JSHint
|
| 19599 |
jQuery
jQuery 롤링배너 플러그인
1
|
| 6961 | |
| 30941 | |
| 19597 | |
| 19596 | |
| 19595 | |
| 19594 |
JavaScript
스크립트 for문
|
| 30939 |
HTML
디바이스별 해상도 확인
1
|
| 19593 | |
| 6959 | |
| 6957 | |
| 6953 | |
| 27920 | |
| 19592 |
PHP
php oop 단일 모드
|
| 19591 | |
| 19590 |
PHP
IP class 비교 함수
|
| 6949 | |
| 6947 | |
| 20826 |
이미지관련
문자열이미지에 각종 필터를 적용한 결과
7
|
| 20823 |
이미지관련
이미지에 각종 필터를 적용한 결과
2
|
| 19589 |
jQuery
심플한 파일첨부 버튼과 jquery
|
| 27913 | |
| 27912 | |
| 19588 |
JavaScript
자바스크립트 시작날짜 종료날짜 유효성 검사 함수
|
| 20822 |
이미지관련
프레임이미지와 얼굴이미지 합치기
|
| 19587 | |
| 19586 |
PHP
한국 IP대역 체크
|
| 27887 | |
| 20819 | |
| 27883 | |
| 19585 | |
| 19584 | |
| 19583 |
JavaScript
중첩없이 랜덤수 뽑아내기
|
| 19582 | |
| 19581 | |
| 19580 | |
| 6945 | |
| 24622 | |
| 19578 |
JavaScript
자바스크립트에서 for문 사용시 속도차이
1
|
| 6938 | |
| 6935 | |
| 27880 | |
| 20818 | |
| 19575 | |
| 20815 |
이미지관련
이미지 너비에 맞게 문자열의 자동 개행
2
|
| 20812 | |
| 20809 |
이미지관련
문자열 그릴때 패딩 주기
2
|
| 6932 | |
| 6931 | |
| 6929 | |
| 19571 |
Mobile
html5 지원되는 os별 버전보기
3
|
| 19570 | |
| 20802 |
이미지관련
위치에 따른 이미지에 문자열 그리기
6
|
| 27877 | |
| 20797 | |
| 6923 | |
| 20795 |
이미지관련
문자열의 너비와 높이 구하기
1
|
| 6918 | |
| 6914 | |
| 20789 |
이미지관련
이미지에 글자 쓰기
5
|
| 6899 | |
| 27860 | |
| 6898 | |
| 27856 | |
| 6895 | |
| 6891 | |
| 6890 | |
| 6881 | |
| 6874 | |
| 27852 | |
| 6860 | |
| 6857 | |
| 19569 | |
| 19565 | |
| 19564 | |
| 27844 | |
| 19563 | |
| 24617 | |
| 19554 | |
| 6854 | |
| 19553 | |
| 19531 | |
| 6850 | |
| 6848 | |
| 27842 | |
| 6846 | |
| 6842 | |
| 6839 | |
| 6834 | |
| 6829 | |
| 6824 | |
| 6820 | |
| 27839 | |
| 6818 | |
| 19529 |
JavaScript
그누보드5 에 Daum 우편번호 찾기 API 연동 하기
1
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기