MySQLとWebディレクトリのバックアップをとるシェルスクリプト

MySQLとWebディレクトリのバックアップをとるシェルスクリプトです。
MySQLの全データベースをダンプしながら圧縮、Webディレクトリも圧縮し、同サーバ内のディレクトリに保存します。
ファイル名は、ローテーションするために必要なのでそのままにしてください。

#!/bin/sh

# 何日分保存するか
day=3

# バックアップディレクトリ
bkdir=/home/backup

# ファイル名
filename=`date '+%Y%m%d'`

# webディレクトリ
webdir=/home/www

# MySQLユーザ名
dbuser=xxx

# MySQLパスワード
dbpasswd=xxx

mysqldump -A -u$dbuser -p$dbpasswd --opt | gzip > $bkdir/$filename.mysql.sql.gz
tar cvfz $bkdir/$filename.www.tar.gz $webdir

# 古いバックアップを削除
oldfile=`date -d "$day days ago" '+%Y%m%d'`
rm -f $bkdir/$oldfile.*

同一サーバー内に保存簡易的なものなので、サーバーがクラッシュしたりするとヘブン状態です。rsyncなんかで別サーバに転送するとなお良いと思います。

  • ブックマーク
  • Feedly

この記事を書いた人

キタジマタカシ

長崎在住、フリーランスのWordPress テーマ / プラグインデベロッパー。 多数のプロダクトをオープンソースで開発・公開しています。現在は WordPress 有料テーマ Snow Monkey を開発・販売しています。