๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ๋ฐฑ์ ํ ์ ์๋๋ก ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๋ค.
#! /bin/bash
# backup directory
dir=$(echo /home1/test01/project01/db/backup)
# get backup file time and now time
customer_BackupFileDate=$(date -r $dir/backup_customer.sql '+%Y-%m-%d %H:%M:%S')
customer_BackupFileDateString=$(date -r $dir/backup_customer.sql '+%Y%m%d_%H%M%S')
# rename last backup file
mv $dir/backup_customer.sql $dir/backup_customer_$customer_BackupFileDateString.sql
# backup customer table from test01
sudo /home1/test01/db/mysql/bin/mysqldump -utest01 -p1q2w3e4r -S /home1/test01/db/mysql/tmp/mysql.sock test01 customer --where="create_date > '$customer_BackupFileDate'" --skip-add-drop-table > $dir/backup_customer.sql
sudo chown test01:test01 $dir/backup_customer.sql
ํด๋น ์คํฌ๋ฆฝํธ๋ฅผ ๋ฆฌ๋ ์ค ์์ ์ค์ผ์ค๋ฌ(crontab)์ ๋ฑ๋กํ์ฌ ๋ฐ๋ณต์ ์ผ๋ก ์คํ๋๊ฒ ํ๋ฉด ๋๋ค.
๋ณธ์ธ์ ์ง์ ์ ๋ฐฑ์ ๋ ํ์ผ์ด ์์ฑ๋ ์ผ์ ์ดํ๋ก ๋ฑ๋ก๋ customer ์ ๋ณด๋ง ๋ฐฑ์ ํ๊ณ ์ ์์ ๊ฐ์ด ์์ฑํ๋๋ฐ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ค ๋ฐฑ์ ํ๊ณ ์ ํ๋ค๋ฉด where ์ ์ ์ ๊ฑฐํ๊ณ ์ฌ์ฉํ๋ฉด ๋๋ค!
์คํธ๋ฆฝํธ์ ๋ด์ฉ์ ์ค๋ช ํด๋ณด์๋ฉด
# get backup file time and now time
: ๊ธฐ์กด์ ์์ฑ๋ ๋ฐฑ์ ํ์ผ์ด ์์ฑ๋ ์๊ฐ์ ํ๋ํ์๋ค. ํ๋๋ date ํ์ ์ด๊ณ ํ๋๋ string ํ์ ์ธ๋ฐ date ํ์ ์ where์ ์ ์กฐ๊ฑด์ ์ฃผ๊ธฐ ์ํจ์ด๊ณ , string ํ์ ์ ๊ธฐ์กด ๋ฐฑ์ ํ์ผ์ ํ์ผ๋ช ์ ๋ฐ๊ฟ์ฃผ๊ธฐ ์ํจ์ด๋ค.
# rename last backup file
: ๋ง์ง๋ง์ผ๋ก ์์ฑ๋ ๋ฐฑ์ ํ์ผ์ ํ์ผ๋ช ์ ๋ณ๊ฒฝํ์๋ค. ( ์์์ ํ๋ํ string ํ์ ์ ์ผ์ ๋ถ์ฌ์ค)
# backup customer table from test01
: test01 ๋ฐ์ดํฐ๋ฒ ์ด์ค์ customer ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ dumpํ๊ธฐ ์ํ ๊ณผ์ ์ด๋ค.
์๋์ ๊ฐ์ด ์ํฉ์ ๋ฐ๋ผ ์์ ํด์ ์ฌ์ฉํ๋ฉด ๋ ๋ฏ!
- ์ ์ฒด ๋ฐฑ์
mysqldump -u๊ณ์ ์์ด๋ -p๊ณ์ ํจ์ค์๋ -A > all.sql
- ํน์ DB ๋ฐฑ์
mysqldump -u๊ณ์ ์์ด๋ -p๊ณ์ ํจ์ค์๋ DB๋ช > DB๋ช .sql
- ํน์ DB์ ํน์ ํ
์ด๋ธ ๋ฐฑ์
mysqldump --u๊ณ์ ์์ด๋ -p๊ณ์ ํจ์ค์๋ DB๋ช table๋ช > DB๋ช _table๋ช .sql
๋๊ธ