Skip to content

Instantly share code, notes, and snippets.

@sakama
Created December 9, 2011 09:11
Show Gist options
  • Save sakama/1450837 to your computer and use it in GitHub Desktop.
Save sakama/1450837 to your computer and use it in GitHub Desktop.
MySQL用Backupスクリプト
#!/bin/sh
# ---------- 設定 ----------
# バックアップ元のデータベース
db_name=dbname
db_user=username
db_pass=password
# バックアップ先のディレクトリ・ファイル
bk_dir=/backup/database/
bk_file=$db_name
# 保存する日数
bk_days=7
# ---------- ファイル名を設定 ----------
# タイムスタンプを取得
ts_now=`date +%Y%m%d`
ts_old=`date "-d$bk_days days ago" +%Y%m%d`
# ファイル名を設定
file_temp=$bk_file.sql
file_backup=$bk_file.$ts_now.tar.gz
file_remove=$bk_file.$ts_old.tar.gz
# ---------- バックアップ処理 ----------
# バックアップ先のディレクトリに移動
cd $bk_dir
if [ $? != 0 ]; then
echo "Backup directory does not exist."
exit 1
fi
# データベースをダンプ
/usr/bin/mysqldump $db_name -u $db_user -p$db_pass --skip-lock-tables --skip-add-locks > $file_temp
if [ $? != 0 -o ! -e $file_temp ]; then
echo "Cannot dump database."
exit 1
fi
# アーカイブを作成
tar cfz $file_backup $file_temp
if [ $? != 0 -o ! -e $file_backup ]; then
echo "Cannot archive files."
exit 1
fi
# テンポラリファイルを削除
rm -f $file_temp
# ローテーション処理
if [ -e $file_remove ]; then
rm -f $file_remove
fi
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment