백업방법, 특별한 명령어 없이 자동으로 로테이션 되도록.

기본적으로 find 명령어를 사용해서 며칠지난 백업 파일을 주기적으로 지우는 방법을 사용하는데,
find 명령의 권한이 없다!

그래서 고민을 했지...
php에서 파일권한 777줘서 백업/삭제를 할 것인가?

그래서 다시 고민했지
백업을 하는 이유와 백업을 남길 여유날짜.

백업파일의 목적은 DB의 특정 테이블 백업용.
백업파일은 약 7일정도만 남기면 될 것 같음

여기까지 사설.

백업파일명을
  • 분 기준 :  1시간 마다 로테이션
  • 시간 기준 : 하루마다 로테이션
  • 요일기준 : 7일마다 로테이션
  • 일 기준 : 28~31일마다 로테이션
  • 월+일 기준 : 1년 로테이션
위 기준을 넣고 백업 파일 명을 만들면,
자동으로 기준의 날짜만큼 로테이션이 됨.

backup_{기준}.bak
처럼 파일명을 만들면 되겠지.


#예제
리눅스에서 mysqldump로 특정 DB의 특정 테이블을 sql로 백업하기. (7일 단위 백업)

# 일주일 뺑뺑이로 백업

WW=$(date +%w) ; 0~6의 요일값(0은 일요일)
mysqldump -u{계정} -p{비번} {DB명} {테이블명} > {백업폴더}/backup_${WW}.sql

실행되면 해당폴더에
backup_0.sql
backup_1.sql
...
backup_6.sql

처럼 파일이 생성됨.(물론 이미 있다면 덮어씌움)


예제

# 일주일 뺑뺑이로 백업
WW=$(date +%w)

cd /XXXXX/dbBackup/

/usr/local/mysql/bin/mysqldump -uXXXXXX -pXXXXXX XXXX sdgd_comment > sdgd_comment_${WW}.sql
/usr/local/mysql/bin/mysqldump -uXXXXXX -pXXXXXX XXXX sdgd_unit_add > sdgd_unit_add_${WW}.sql

#이 밑은 압축처리
tar cvfzp sdgd_comment_${WW}.sql.tar.gz sdgd_comment_${WW}.sql
tar cvfzp sdgd_unit_add_${WW}.sql.tar.gz sdgd_unit_add_${WW}.sql
rm -f sdgd_comment_${WW}.sql
rm -f sdgd_unit_add_${WW}.sql


댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
2.25
2.27
2.28
3.1
3.2
3.3
3.4
3.5
3.7
3.9
3.11
3.12
3.13
3.14
3.15
3.16
3.17
3.18
3.19
3.20
3.21
3.22
3.23
3.24
3.25
3.27
3.28
3.29
3.30
3.31
4.1
4.2
4.3
4.4
4.5
4.6