Standing on the Shoulder of Linus

Home / 2011 / 7月 / 10 / MySQLデータベース自動バックアップスクリプト

MySQLデータベース自動バックアップスクリプト

MySQLデータベース自動バックアップスクリプトです。

まず、下記のようなシェルスクリプトを作成しておきます。

#!/bin/sh
backupdir=""
day=`date '+%Y-%m-%d'`
host=''
user=''
pass=''
database=''
/usr/local/bin/mysqldump --add-drop-table --host=$host --user=$user --pass=$pass $database > $backupdir/$day.sql

#!/bin/shや/usr/local/bin/mysqldumpは、サーバーによってパス等が異なりますので、サーバー会社で確認してください。ここでは、さくらレンタルサーバー(ビジネスプラン)のケースを掲載しています。

backupdir部分は、バックアップ用の適当なフォルダを指定してください。サーバーによっては絶対パスで書く必要があるかもしれません。

day=`date '+%Y-%m-%d'の部分は、日付を取得しています。バックアップファイルのファイル名を日付にするためです。/$day.sqlの部分で、例えば、2011-07-10.sqlのようになります。

host, user, pass, databaseは、mysqlデータベースの情報を書き込んでください。CMSの設定ファイルを見れば分かると思います。例えばWordPressならwp-config.php、MojoMotorならconfig/database.phpです。

通常、CMSにはデータエクスポート機能があるので、そちらを使うと簡単です。ここで紹介した方法のメリットは、

  • CMS管理画面を通らないので、汎用性が高い
  • SSHから実行する他、cron等で自動化できる

等があげられます。(SSHやcronの設定方法はサーバー会社のマニュアル等を確認してください。)

データベースの復元は、source SQLファイル で行うことができます(ssh でサーバーにリモートログイン、さらに mysql にログインした後、実行してください。)。

関連

Posted in cms | Tagged cms, cron, MySQL, バックアップ
← css minify と WordPress PHP技術者試験認定証が届きました →

アーカイブ

人気の投稿とページ

  • キンドル本を印刷する(PDFに変換する)方法
  • 名古屋駅から国際センターまでの道のり(徒歩)
  • AGPL ライセンス(GPLとは似ているが違いもある)
  • 問い合わせフォーム改善: 選択肢により条件分岐し、項目の表示非表示を変更する
  • JP-Secure SiteGuard WP Pluginは不正ログイン防止に役立つか

プロフィール

水野史土:月70万PVホームページ制作会社のレスキューワーク株式会社で、PHPソフトウェアのサポートを行っている。concrete5コミュニティリーダー、Novius OSコアコード貢献者でもある。 詳しくは管理者詳細参照。
大好評WordPress書籍「WordPressユーザーのためのPHP入門 はじめから、ていねいに。」サポートページ

Copyright © 2015 Standing on the Shoulder of Linus.