질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

특정 디렉토리를 일정 기간이 지난후에 지우는 방법

작성자 정보

  • 李秀一 작성
  • 작성일

컨텐츠 정보

본문

특정 디렉토리를 일정 기간이 지난후에 지우는 방법이 어떻케 될가요?

cron 으로 db 디렉토리를 매일 새벽 4시가 되면

/var/backup/mysql 이란 디렉토리에 백업하도록 해놨습니다.

그러다 보니 시간이 지남에 따라 하드디스크의 용량이 부족합니다.

____________________________________________________________

bash-2.03# pwd
/var/backup/mysql
bash-2.03#bash-2.03# ls -l
총 6
drwxr-xr-x   5 root     other        512  2월 03일  12:20 ./
drwxr-xr-x   4 root     other        512  2월 04일  12:16 ../
drwxr-xr-x   3 root     other        512  2월 05일  04:00 mysql2007.02.05/
drwxr-xr-x   3 root     other        512  2월 06일  04:00 mysql2007.02.06/
drwxr-xr-x   3 root     other        512  2월 07일  04:00 mysql2007.02.07/
drwxr-xr-x   3 root     other        512  2월 08일  04:00 mysql2007.02.08/
drwxr-xr-x   3 root     other        512  2월 09일  04:00 mysql2007.02.09/
drwxr-xr-x   3 root     other        512  2월 10일  04:00 mysql2007.02.10/
drwxr-xr-x   3 root     other        512  2월 11일  04:00 mysql2007.02.11/
drwxr-xr-x   3 root     other        512  2월 12일  04:00 mysql2007.02.12/

bash-2.03#

____________________________________________________________

이와 같습니다.

즉 저렇게 날자순으로 백업이 되어 있습니다.

그리고 스크립트(backup.sh)는 다음과 같습니다.

____________________________________________________________

bash-2.03# cat ../backup.sh
#!/bin/sh
echo "Backup Starting..."

echo "mysql directory(var/backup/mysql) backup..."
mkdir -p /var/backup/mysql/mysql`date +%Y.%m.%d`
cp -r /usr/local/mysql  /var/backup/mysql/mysql`date +%Y.%m.%d`

____________________________________________________________

[질문]

따라서
오늘 백업을 하면

drwxr-xr-x   3 root     other        512  2월 05일  04:00 mysql2007.02.05/
이 날자의 디렉토리를 지우고 싶습니다. 어찌해야 될까요?

관련자료

댓글 5

배준태님의 댓글

  • 배준태
  • 작성일
현재 날짜 -7 하시면 되겠는데요

윤용섭님의 댓글

  • 윤용섭
  • 작성일
7일 이전에 생성된 파일을 모두 지우면 되지 않을 까요?
find . -mtime +7 -exec rm -rf {} ;

李秀一님의 댓글

  • 李秀一
  • 작성일
답변 주셔서 감사합니다. ㅎㅎ
윤용섭님 답변의 경우
다른 디렉토리에서 c코드를 생성해서 컴파일을 했을 경우 그 코드가 해당일에 포함된다면 지워져서 안될 것 같습니다.

배준태님 답변의 경우
3월달로 넘어갔을 경우 지울수가 없어요

어찌 해결하면 될까요?

윤용섭님의 댓글

  • 윤용섭
  • 작성일
다음 명령은 현재 디렉토리에 7일 이전에 생성된 mysql로 시작하는 디렉토리를 찾아 지우는 명령입니다.
find . -type d -name "mysql*" -mtime +7 -exec rm -rf {} ;

李秀一님의 댓글

  • 李秀一
  • 작성일
아..
윤용섭님 답변 무지 감사합니다.
find 를 자유자재로 잘 쓸줄 몰라서요.

공지사항


뉴스광장


  • 현재 회원수 :  60,039 명
  • 현재 강좌수 :  35,848 개
  • 현재 접속자 :  86 명