오늘은 대한입니다.
sun's longitude:299 44 18.11 
· 자유게시판 · 묻고답하기 · 알파문서 · RPMS list
· 사용자문서 · 팁/FAQ모음 · 리눅스Links · 자료실
· 서버정보 · 운영자 · Books/FAQ · FreeBSD
/board/delete.php:소스보기  

질문과 답변 게시판입니다.

현재 실시간으로 이곳 서버의 설정파일(몇개)를 보여주고 있습니다.
서버의 설정내용에 관한 질문은 먼저 이곳 서버의 설정내용을 참고하시길 바랍니다.

[*** 쓰기 금지단어 패턴 ***]
글 본문 중간에 업로드할 이미지를 추가하는 방법 : @@이미지이름@@
ex) @@foo.gif@@
 ★ 글 지우기 항목입니다. 한번 더 생각하시고 결정하십시오.!!!
제목 6159 번 글의 답장글 : Re: Re: Re: Re: 음.. bash 스크립트로...
 이름  ..

[산이]님이 남기신 글:

>
>[..]님이 남기신 글:
>
>>
>>[산이]님이 남기신 글:
>>
>>>
>>>[..]님이 남기신 글:
>>>
>>>>-rw-r--r-- 1 root root 2548 8월 4 00:00 access_log
>>>>lrwxrwxrwx 1 root root 30 8월 4 03:49 aaa-acc -> /var/www/logs/aaa-acc.050804
>>>>-rw-r--r-- 1 root root 253465 8월 2 23:59 aaa-acc.050802
>>>>-rw-r--r-- 1 root root 455701 8월 3 23:59 aaa-acc.050803
>>>>-rw-r--r-- 1 root root 38791 8월 4 04:11 aaa-acc.050804
>>>>-rw-r--r-- 1 root root 4274 8월 4 01:58 aaa-err
>>>>-rw-r--r-- 1 root root 4828 8월 4 03:48 error_log
>>>>lrwxrwxrwx 1 root root 32 8월 4 03:40 bbb-acc -> /var/www/logs/bbb-acc.050804
>>>>-rw-r--r-- 1 root root 35058 8월 2 23:28 bbb-acc.050802
>>>>-rw-r--r-- 1 root root 57491 8월 3 23:25 bbb-acc.050803
>>>>-rw-r--r-- 1 root root 811 8월 4 03:40 bbb-acc.050804
>>>>-rw-r--r-- 1 root root 1181 8월 4 03:40 bbb-err
>>>>-rw-r--r-- 1 root root 5 8월 4 03:48 httpd.pid
>>>>-rw-r--r-- 1 nobody nobody 212 8월 4 03:48 mod_throttle.runtime
>>>>lrwxrwxrwx 1 root root 31 8월 2 11:16 ccc-acc -> /var/www/logs/ccc-acc.050802
>>>>-rw-r--r-- 1 root root 29305 8월 2 15:51 ccc-acc.050802
>>>>-rw-r--r-- 1 root root 107 8월 2 11:16 ccc-err
>>>>
>>>>현재 위와 같은 로그 파일들이 있습니다.
>>>>로그파일은 crono를 이용하여 매일 심볼릭링크가 오늘날짜로 설정되도록 했습니다.
>>>>하고자 하는 작업은.. 어제 날짜들의 로그파일을 삭제하도록 하고 싶은데요.
>>>>여기서 조건이 한가지가 더 따라오더군요.
>>>>crono 프로그램이 access 파일을 오늘 날짜로 링크를 시켜주는 기능이 있더군요.
>>>>그런데 문제는 어세스파일의 갱신이 없으면, 즉 방문자가 없으면 몇일이 지나도 계속 마지막 갱신된 파일에 링크가 걸려있다는거죠.
>>>>예를 들면 aaa-acc -> aaa-acc.050801 이라는거죠. 오늘 날짜는 050804일 이라도요. 위에 ccc-acc를 보시면 이해가 될것같네요.
>>>>그래서 하루전 로그파일을 무조건 삭제하도록 하면, 갱신이 없는 로그파일 같은 경우도 삭제되므로
>>>>그것을 막기 위해 시스템에서 0시에 한번씩 wget으로 인덱스 파일을 긁어오도록 하려고요.
>>>>
>>>>첫번째조건. 어제 날짜(aaa-acc.YYMMDD)의 로그를 삭제할 것.
>>>
>>>YESTERDAY=`date --date '1 days ago' '+%y%m%d' 2>/dev/null` ## YYMMDD
>>>TODAY=`date '+%y%m%d' 2>/dev/null`
>>>
>>>YLOG="/var/www/logs/aaa-acc.${YESTERDAY}" ## 어제 로그
>>>TLOG="/var/www/logs/aaa-acc.${YESTERDAY}" ## 오늘 로그
>>>
>>>[ -f $YLOG ] && rm -f $YLOG
>>>
>>>
>>>>두번째조건. 하루동안 방문자가 1명도 없는 홈페이지의 경우는
>>>>어세스 파일 링크가 계속 몇일전 파일로 링크되어 있을수가 있으므로
>>>>시스템에서 wget을 통하여 사이트를 한번씩 긁어올것.
>>>>(어세스 로그를 갱신하여 오늘 날짜 로그가 생성되도록 유도.)
>>>
>>>wget .... -O /var/www/logs/aaa-acc.${TODAY}
>>>rm -f /var/www/logs/aaa-acc ## 강제삭제
>>>
>>>[ ! -f $TLOG ] && touch /var/www/logs/aaa-acc.${TODAY}
>>>
>>>ln -sf /var/www/logs/aaa-acc.${TODAY} /var/www/logs/aaa-acc
>>>
>>>이렇게 하면 될꼽니다. :)
>>>
>>>>
>>>>위 조건대로 bash 스크립트를 짜려고 하는데 이거 무지하게 힘들군요.
>>>>다른부분은 몰라도, 첫번째 조건 매칭하기가 너무 어렵습니다 ㅠ_ㅠ
>>>
>>>========================================
>>
>>========================================
>>
>>답변 감사드립니다.
>>그런데 첫번째에서 저건 문제가 안되는데.. 가장큰 문제는..
>>파일이 여러개이다 보니까 리스트를 뽑아 매칭해서 삭제해야 한다는겁니다.
>
>## 최근 7개만 남기고 모두 삭제하기
>##
>
>IFS='
>'
>cd /var/www/logs || exit 1
>
>N=0
>LISTS=`ls -t aaa-acc.* 2>/dev/null`
>
>for file in $LISTS ; do
> [ $N -ge 7 ] && rm -f $file
> N=`expr $N + 1`
>done
>
>이렇게 짜고 테스트해 보세요.
>
>>두번째 같은 경우는 그냥 wget 한번 해주면 cronolog가 알아서
>>링크를 바꿔주므로 별다른 작업은 필요없을듯 하고요. :-)
>
>========================================

========================================

감사합니다.
그런데 그냥 전 야메로 처리했습니다;;
2005년 08월 09일 00:56:51 화(새벽)  from 61.74.175.118
0
암호: 공용 보안 SSL 서버가 준비되기 전까지는 off 합니다

apache lighttpd linuxchannel.net 
Copyright 1997-2026. linuxchannel.net. All rights reserved.

Page loading: 0.01(server) + (network) + (browser) seconds