[쉘 프로그램밍]3~5일치 파일만 삭제하려면..
글쓴이: shean0 / 작성시간: 목, 2004/05/20 - 3:52오후
안녕하세요..
질문이 있어서요..
예를 들면 200405201530_xxxx.txt 라는 파일이 있습니다.
일부로 파일명을 년-월-일-시간-분 의 조합으로 만들었습니다.
그리고 cron으로 mydelete를 돌려서..현재보다 이전 3일것만을 지워야 하는 경우가 발생하였습니다.
계정:test 쉘:bash
export/home/test/testlog
export/home/test/testlog/mydelete <= 실행화일
그래서.. c로 dir하고. 각각의 파일명을 현재 시간으로 얻은 스트링과 비교하여
삭제하도록 하였습니다만..
시간에 쫓겨 급하게 짜기는 했지만.. 영.. 마음에 들지 않습니다..
쉘만 안다면.. 쫌더 깔끔할텐데..굳이 프로그램 만들지 않고.. 음..
좋은 사이트 추천 부탁드립니다.
예제가 많은 사이트 부탁드립니다..다른 사람들의 것을 보고 따라 배우려구요..
Forums:
find...
find 명령을 이용하시면 원하시는 것을 할 수 있을 듯 합니다만
예를 들면 3일 이전것을 삭제하고 싶으시면 아래와 같이 하시면 됩니다.
find 원하는 위치 -atime +3 -delete
P.S 아~ FreeBSD 에서 테스트 했는데 아마도 리눅스에서 될 것입니다.
그냥 한번 보세요...FreeBSD에서 mysql백업받고, 3일전 백
그냥 한번 보세요...
FreeBSD에서 mysql백업받고, 3일전 백업내용은 자동 삭제되는 스크립입니다.
-------------------
#!/bin/sh
#DATE=`/bin/date +%y%m%d%h%M%S`
DATE=`/bin/date +%y%m%d`
DATE_3=`/bin/date -v-3d +%y%m%d`
tar cvfz /data/BACKUP/db_$DATE.tar.gz /data/db/
chflags schg /data/BACKUP/db_$DATE.tar.gz
## ls -lo
## chflags noschg file_name.tar.gz
chflags noschg /data/BACKUP/db_$DATE_3.tar.gz
rm -rf /data/BACKUP/db_$DATE_3.tar.gz
오...date명령어를 참 잘쓰시는군여
date명령어...외워둬야하는데. 한번쓰고 시간지나면 또 까먹고..또까먹고해서리
나중엔 그냥 date명령어대신 날짜계산하는 간단한 c로 화일만들어서 그거로씀 ㅡ.ㅡ
date명령언..프로그램만드는거보다 더어려워..우잉..
Yuie.
Evonit Community
댓글 달기