LoginSignup
15

More than 5 years have passed since last update.

MySQLのデータを定期実行でバックアップ

Posted at

サービス運用してるとバックアップ取ると思うのですが、毎回調べるので自分のブログにメモ。

backup_db.shとかで。
このシェルスクリプトをcronで定期実行するイメージです。

#!/bin/bash

TODAY=`date +%Y%m%d`
BACKUP_DIR=/data/backup/db
BACKUP_INTERVAL='+3'

for database in `mysql -uroot -N -s -e"show databases"`; do
    if [ $database == 'DB名' ]; then
        nice mysqldump -uroot --single-transaction --no-autocommit ${database} | pbzip2 -cv -p4 > ${BACKUP_DIR}/${database}-${TODAY}.sql.bz2
    fi
done

find ${BACKUP_DIR} -type f -name "*.bz2" -mtime ${BACKUP_INTERVAL} | xargs rm -Rf

 

ちなみにcronはこんな感じ

0  4 * * * root sh /path/to/backup_db.sh   > /dev/null 2>&1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15