[완료]mysql 백업하는 쉘스크립트 인데요.좀 봐주세요.

alone의 이미지

#!/bin/bash
# mysql data 폴더 밑에서 구동
# crontab에 추가
date

PROJECT=project
BACKUPPATH=/dbbackup
DATE=`date +%Y%m%d-%H%M%S`
TARFILE=$PROJECT-$DATE.tar.gz
DBSRC="db1 db2 db3"
PIDFILE=$HOSTNAME.pid

echo -e "Stop Mysql..."
/sbin/service mysqld_condb1 stop
while test -f $PIDFILE; do
sleep 10
done
echo -e "Done..."

sync

echo -e "Create DB Backup File... $TARFILE"
tar czvf $BACKUPPATH/$TARFILE $DBSRC

echo -e "Done..."

echo -e "Start Mysql..."
/sbin/service mysqld_condb1 start
while test ! -f $PIDFILE; do
sleep 10
done
echo -e "Done..."
date

코드 마지막에 한달내의 것은 전부 보관하고
한달이후부터 6개월미만까지의 백업데이타중(1일, 10일, 20일) 것만 남기고
6개월 이상것은 1일것만 남기는 코드를 삽입하고 싶습니다.

생각은 오늘부터 30일 이전것을 가져와서 1, 10, 20일 것이 아니면 삭제하고
오늘부터 180일 이전 데이타 화일을 가져와서 1일 것이 아니면 삭제하면 될 것 같은데
딸리네요..ㅜㅜ 좀 도와주세요..
위에 백업 스크립만 만들어 놓고 어느정도 시간 지나면 수동으로 지우고 있습니다.
괜히 신경 많이 쓰이네요..

academic의 이미지

스크립트에 대해서는 여기 고수분들이 말씀해주실테고...

mysql 백업 자체에 대해서만 말씀드립니다.

mysql을 중지하고 데이터 파일을 백업하는 것은 바른 백업이 아닙니다.

첫째, 백업할 때마다 mysql을 중지시키면 가용성이 많이 떨어집니다.

mysql을 중지하지 않고도 얼마든지 백업받을 수 있습니다.

예를 들어 테이블 형식이 myisam인 경우엔 mysqlhotcopy를 이용하면 mysql이 실행 중에도 논리적인 일관성을 유지한 채 테이블을 복사할 수 있습니다.

둘째, mysql이 버전업되면 데이터 파일 백업받은 걸 그대로 사용할 수 없는 경우가 많습니다.

데이터 포맷이 버전에 따라서 달라지기 때문입니다. 그래서 가능하면 mysqlbackup 명령을 이용해서 백업을 받으시길 권해 드립니다.

정리해서 말씀드리면, mysql 중지시키는 부분은 필요없습니다.

그리고 데이터 파일을 백업하지 말고 mysqlbackup 명령의 결과물을 백업하시는게 좋겠습니다.

--
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이럴 때가 있습니다.

----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

alone의 이미지

내일은 내일일뿐.....

데이타가 커지면 mysqlbackup, mysqldump 이런 프로그램이 느린것 같아서요.
그리고 백업하는 서버는 Slave 입니다. 마스터라면 물론 중지->백업->시작은 말도 안되겠죠. ㅎ

내일은 내일일뿐.....

academic의 이미지

하기야, slave라면 그리 신경쓰지 않고 해도 되겠네요.

제가 주제넘게 말씀을 드렸습니다.

그럼 master랑 slave 둘다 백업하시는 건가요?

--
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이럴 때가 있습니다.

----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

academic의 이미지

mysqlbackup이 아니라 mysqldump입니다. 죄송.

--
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이럴 때가 있습니다.

----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

alone의 이미지

내일은 내일일뿐.....

내일은 내일일뿐.....

alone의 이미지

내일은 내일일뿐.....

내일은 내일일뿐.....

alone의 이미지

내일은 내일일뿐.....

# 30일 이상 파일 1,10,20일 것 제외하고 지우기
TEMPDATE=`date -d "30 days" +%Y%m%d`
find $BACKUPPATH -name $PROJECT-$TEMPDATE* ! -name \*01-* ! -name \*10-* ! -name \*20-* -exec rm {} \;

#180일 이상 파일 1일것 제외하고 지우기
TEMPDATE=`date -d "180 days" +%Y%m%d`
find $BACKUPPATH -name $PROJECT-$TEMPDATE* ! -name \*01-* -exec rm {} \;

그냥 이렇게 지우기로 ㅎㅎ

내일은 내일일뿐.....

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.