|
커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
|
|
|
|
| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
이현철 손님
|
올려짐: 2004.9.17 금, 2:14 pm 주제: 셀좀 봐주세요. |
|
|
셀이 초보라서 요.. 아래와 같이 매일 로그가 남는것을 셀을 이용해서자동으로 삭제할려고 합니다.
[root@oracle logs]# ls -al | more
合計 225284
drwxr-xr-x 2 root root 4096 9月 17 13:44 .
drwxr-xr-x 3 root root 4096 9月 17 11:50 ..
-rw-rw-rw- 1 root root 6524302 7月 3 05:00 20040703_access.log
-rw-rw-rw- 1 root root 9205570 7月 4 05:00 20040704_access.log
-rw-rw-rw- 1 root root 5915410 7月 6 05:00 20040706_access.log
-rw-rw-rw- 1 root root 6194908 7月 7 05:00 20040707_access.log
-rw-rw-rw- 1 root root 8044288 7月 8 05:00 20040708_access.log
-rw-rw-rw- 1 root root 9633671 7月 9 05:00 20040709_access.log
-rw-rw-rw- 1 root root 6455530 7月 10 05:00 20040710_access.log
-rw-rw-rw- 1 root root 8350481 7月 11 05:00 20040711_access.log
-rw-rw-rw- 1 root root 10418523 7月 12 05:00 20040712_access.log
-rw-rw-rw- 1 root root 8808069 7月 13 05:00 20040713_access.log
-rw-rw-rw- 1 root root 8358805 7月 14 05:00 20040714_access.log
-rw-rw-rw- 1 root root 13439551 7月 15 05:00 20040715_access.log
-rw-rw-rw- 1 root root 10946021 7月 16 05:00 20040716_access.log
-rw-rw-rw- 1 root root 10558612 7月 17 05:00 20040717_access.log
-rw-rw-rw- 1 root root 13937998 7月 19 05:00 20040719_access.log
-rw-rw-rw- 1 root root 8160689 7月 21 05:00 20040721_access.log
-rw-rw-rw- 1 root root 8026395 7月 22 05:00 20040722_access.log
-rw-rw-rw- 1 root root 16811524 7月 23 05:00 20040723_access.log
-rw-rw-rw- 1 root root 6357169 7月 24 05:00 20040724_access.log
#######################################
위와 같이 매일 로그가 남습니다. 이것을 셸을 이용해서 한달에 한번씩 2달전 이전의 로그를 삭제할려고
합니다. (지난달의 한달치 로그는 남겨두고.-- 로그분석차원에서)
그래서 아래와 같이 제가 만들었지만 제대로 되지 않고 있습니다.
고수님들의 조언 부탁드립니다.
vi test.sh
##########################
#!/bin/sh
IFS='
'
WDIR='/home/hclee/ifilter/usr/local/ifilter4/logs'
cd $WDIR || exit 1
## 날짜를 역순으로 표시
#
LISTS=`ls -lt `
i=1;
for file in $LISTS ; do
if [ "$i" -gt 60 ] ; then // 오늘을 기준으로 60일전자료
rm -rf $file
fi
i=$(($i+1))
done
##############################
이런씩으로 만들었는데 제대로 작동하지 않고 있습니다.
혹시 위 셸에 에러가 있다면 이야기 해주시고. 이 방법말고 다른 좋은 방법있으면
조언 부탁드립니다. |
|
| 위로 |
|
 |
truefeel 카페 관리자
가입: 2003년 7월 24일 올린 글: 1277 위치: 대한민국
|
올려짐: 2004.9.17 금, 6:58 pm 주제: Re: 셀좀 봐주세요. (2달 이상된 파일 삭제) |
|
|
| 이현철 씀: | 셀이 초보라서 요.. 아래와 같이 매일 로그가 남는것을 셀을 이용해서자동으로 삭제할려고 합니다.
[root@oracle logs]# ls -al | more
合計 225284
drwxr-xr-x 2 root root 4096 9月 17 13:44 .
drwxr-xr-x 3 root root 4096 9月 17 11:50 ..
-rw-rw-rw- 1 root root 6524302 7月 3 05:00 20040703_access.log
-rw-rw-rw- 1 root root 9205570 7月 4 05:00 20040704_access.log
-rw-rw-rw- 1 root root 5915410 7月 6 05:00 20040706_access.log
-rw-rw-rw- 1 root root 6194908 7月 7 05:00 20040707_access.log
... 생략 ...
-rw-rw-rw- 1 root root 6357169 7月 24 05:00 20040724_access.log
#######################################
위와 같이 매일 로그가 남습니다. 이것을 셸을 이용해서 한달에 한번씩 2달전 이전의 로그를 삭제할려고
합니다. (지난달의 한달치 로그는 남겨두고.-- 로그분석차원에서)
그래서 아래와 같이 제가 만들었지만 제대로 되지 않고 있습니다.
고수님들의 조언 부탁드립니다.
vi test.sh
##########################
#!/bin/sh
IFS='
'
WDIR='/home/hclee/ifilter/usr/local/ifilter4/logs'
cd $WDIR || exit 1
## 날짜를 역순으로 표시
#
LISTS=`ls -lt `
i=1;
for file in $LISTS ; do
if [ "$i" -gt 60 ] ; then // 오늘을 기준으로 60일전자료
rm -rf $file
fi
i=$(($i+1))
done
##############################
이런씩으로 만들었는데 제대로 작동하지 않고 있습니다.
혹시 위 셸에 에러가 있다면 이야기 해주시고. 이 방법말고 다른 좋은 방법있으면
조언 부탁드립니다. |
ls 보다는 find 명령 한줄로 해결하는게 쉬울 것 같습니다. 다음 예를 봅시다.
* 현 디렉토리 이하(.)에서 60일 이상된 파일 목록을 봅니다.
| 코드: | | find . -mtime +60 -ls |
* 최근 30일이내의 파일 목록을 봅니다.
| 코드: | | find . -mtime -30 -ls |
* 바로 원하는 명령. 60일 이상된 파일을 삭제합니다.
| 코드: | | find . -mtime +60 -exec rm {} \; |
|
|
| 위로 |
|
 |
win5000 손님
|
올려짐: 2004.9.21 화, 11:47 am 주제: 답변감사합니다. |
|
|
find 를 이용하면 좋치 않을까 했는데.. 이런 방법이 있었군요..
감사합니다.
그런데 하나 만 더 여쭈어 보겠습니다.
find의 ctime 옵션이란 mtime 옵션의 틀린점이 뭔지요... 저는 주로 ctime 옵션을 사용하곤 했는데요... |
|
| 위로 |
|
 |
gamilla 손님
|
올려짐: 2004.12.07 화, 2:24 pm 주제: atime,mtime,ctime |
|
|
| 인용: | -atime : last-access time of file data --> ex)read
-mtime : last-modification time of file data --> ex) write
-ctime : last-change time of i-node status --> ex) chmod, chown
--> from Advanced Programming in the UNIX Environment 4장
|
즉, mtime이 실제 내용이 변한 시간이구요
ctime은 파일에 대한 정보를 관리하는 inode의 값이 변경된 시간입니다.
 |
|
| 위로 |
|
 |
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 있습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB © 2001, 2005 phpBB Group
|