sun's longitude:242 13 48.89 
· 자유게시판 · 묻고답하기 · 알파문서 · RPMS list
· 사용자문서 · 팁/FAQ모음 · 리눅스Links · 자료실
· 서버정보 · 운영자 · Books/FAQ · FreeBSD
/board/read.php:소스보기  

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

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

[*** 쓰기 금지단어 패턴 ***]
글 본문 중간에 업로드할 이미지를 추가하는 방법 : @@이미지이름@@
ex) @@foo.gif@@
2360 번 글의 답장글: Re: Re: Re: 음.. bash 스크립트로...
글쓴이: 산이 [홈페이지] 글쓴날: 2005년 08월 08일 23:34:51 월(저녁) 조회: 2389

[..]님이 남기신 글:

>
>[산이]님이 남기신 글:
>
>>
>>[..]님이 남기신 글:
>>
>>>-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가
알아서
>링크를 바꿔주므로 별다른 작업은 필요없을듯 하고요. :-)


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

 
이전글 : Re: Re: 음.. bash 스크립트로...
다음글 : Re: Re: Re: Re: 음.. bash 스크립트로...  
 from 211.243.181.98
JS(Redhands)Board 0.4 +@

Re: Re: 음.. bash 스크립트로... Re: Re: Re: Re: 음.. bash 스크립트로...
인쇄용 


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

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