| 2771 번 글의 답장글: Re: 3시간전 파일만 찾아서 각각 압축..? |
| 글쓴이: 산이
[홈페이지]
|
글쓴날: 2008년 06월 13일 00:10:15 금(새벽) |
조회: 2181 |
[궁금이]님이 남기신 글:
>-----------------------------------------
>답변자가 기본적으로 참고할 내용입니다.
>- 배포판(옵션) :
>- 커널버전(옵션)
:
>- 데몬버전(예:apache
1.3.27) :
>- 데몬설치유형(RPM/컴파일/기타)
:
>-----------------------------------------
>*스팸필터링:한글
4자(8개 문자) 이상 없으면 스팸페이지로 이동합니다.
>
>특정 디렉토리에서 3시간전에 생성된 파일만 찾아서 Z 로 각각
압축하는
>bash shell 을 짤려고 하는데요..
>파일 속성을 어떻게 가져와서.. 압축해야 할지 전혀 감이
안오네요.
>awk 로 파일 시간까지만 가져와서.. 눈이 멀뚱 멀뚱하고
있습니다..
>
>힌트좀 주세요..ㅜㅜ
========================================
find /path/to -type f -printf "%p:%C@\n"
이렇게 명령어를 내리면 예를 들어
/path/to/bookfaq-1024over.txt:1036082094
/path/to/bookfaq/bookfaq-dns-common.txt:1036082094
/path/to/bookfaq/bookfaq-dns-forwarding.txt:1036082094
/path/to/bookfaq/bookfaq-dns_ipaddr_zone.txt:1036082094
/path/to/bookfaq/bookfaq-dns_rootdomain.txt:1036082094
/path/to/bookfaq/bookfaq-mail-mlocal.txt:1036082094
/path/to/bookfaq/bookfaq-netmask.txt:1036082094
이런식으로 파일 전체 파일 경로와 그 파일의 최근에 변경된
unix timestamp 가 출력됩니다.
이 unix timestamp 값을 현재 시각과 비교해서 3시간 이전이면 해당
파일을 압축하면 됩니다.
예)
-- foobar.sh -----------------
CTIME=`date '+%s'` ## 현재 unix timestamp
PTIME=$(($CTIME - 10800)) ## 10800 은 3시간에 대한 초(60*60*3)
WDIR=/path/to
IFS="
"
for F in `find /path/to -type f -printf "%p:%C@\n" 2>/dev/null`;
do
FNAME=`echo $F | awk -F":" '{print $1}'`
FTIME=`echo $F | awk -F":" '{print $2}'`
if [ "$FTIME" -lt "$PTIME" ] ;
gzip ${FNAME}
fi
done
------------------------------
이런식으로 짜면 됩니다.
한번 테스트 해보고 실제 코드 집어 넣으세요.
http://linuxchannel.net/tip/make-file-info-list.txt
에 find 의 printf 설명이 있습니다.
|
이전글 : Re: Re: 3시간전 파일만 찾아서 각각 압축..?
다음글 : 정말 감사합니다~~~~(냉텅)
|
from 211.108.72.38
JS(Redhands)Board 0.4 +@
|