| 1446 번 글의 답장글: Re: 아하~ 그렇군요... |
| 글쓴이: 산이
[홈페이지]
|
글쓴날: 2003년 04월 27일 21:50:22 일(저녁) |
조회: 740 |
[김성민]님이 남기신 글:
>안녕하세요,
>
>산이님 설명 보고나니 이해가 되었습니다.
>왜 안되나... 며칠을 이리저리 바꿔보기도 하고
했었죠.
>감사합니다...
>
>아래는 앞전에 알려주신 내용대로 수정한 상태
입니다.
>
>#!/bin/bash
>
>export Today="`date '+%y-%m-%d'`"
>LOGdir="/usr/local/apache/logs"
>
>backup_dir="/backup/data"
>mkdir -p ${backup_dir}/$Today
>
>tar cfpz ${backup_dir}/${Today}/$Today-usr.local.mysql.tar.gz
/usr/local/mysql
>tar cfpz ${backup_dir}/${Today}/$Today-usr.local.apache.tar.gz
/usr/local/apache
>tar cfpz ${backup_dir}/${Today}/$Today-home.tar.gz /home
>tar cfpz ${backup_dir}/${Today}/$Today-etc.tar.gz /etc
>
>rm -f ${LOGdir}/*_log
>/usr/bin/killall -HUP httpd
>
>exit 0
>
>이러면 ${backup_dir} 인 /backup/data 에 아래와 같이 디렉토리와
함께 생성이 됩니다.
>
>03-04-20 03-04-21 03-04-22 03-04-23 03-04-24 03-04-25 03-04-26
>
>계속 증가하면 안되므로 전에것 부터 하루에 한번씩 한 날짜씩
삭제하고 있거든요?
>7일분만 놔두고 8일째분이 생성되면 먼저 생성된 1일분을
수동으로 삭제하고 있습니다.
>
>이걸 어떻게 자동화 할수는 없을까요?
>
>날짜 계산을 해야 할것 같은데 산이님 아시다 시피 제가
계산하는 것은 좀 head.. 에서 ㅋㅋ
>글구, 제일 중요한건 리눅스상에서 스크립트를 작성 못한다는
거죠. 헤헤..
>
>스크립트 작성법 조만간 기초공부를 돌입해야 할듯...
이와 같이 오늘 날짜를 기준으로 7일 이전의 내용을
삭제하려면
어떤 시간의 비교가 있어야 합니다.
그런데
여기에서는 시간이 지나면 순차적으로 디렉토리가 생성되고
그 디렉토리는 생성된 시간이 디렉토리에 기록되므로 이것을
이용하면 될것 같군요.
즉 ls 명령어에서 -t 옵션을 사용해서 리스트를 순차적으로
뽑고
최근 8번째부터 지우면 될것 같군요.
## 제일 마지막부분에 코딩
-----------------------------------------------
dirlists=`/bin/ls -t $backup_dir 2>/dev/null`
i=1
for dir in $dirlists ; do
if [ "$i" -gt 7 ] ; then
rm -rf $dir
fi
$i=$(($i+1))
done
exit 0
-----------------------------------------------
rm -rf $dir 를 먼저 적용하지 말고
echo "rm -rf $dir"
로 먼저 테스트해 보시길 바랍니다.
위의 스크립트는 항상 7개의 디렉토리만 남겨놓도록
하는 내용입니다.
원래 시간비교하고는
성격이 다름...
>
>좀 알려주심 고마울것 같은데... 이거 맨날 뭐뭐 해달라는 거
같아서 마음이 참으로 무겁군요...
>동네에 있음 쏘주라도 대접하고 싶구만요..
>파일로 라도 받으세요~
헙... 소주...^.^
|
이전글 : 아하~ 그렇군요...
다음글 : 파티션 정보에서 전체만 출력됩니다.
|
from 61.254.75.40
JS(Redhands)Board 0.4 +@
|