CMS時代のバックアップノウハウを     身につけよう!    2012.8.19 上村崇
自己紹介・上村崇 ( うえむらたかし )・フリーランスのシステムエンジニア・サーバインフラ、組込みシステム、Web とか。・C、PHP。最近はCodeIgniterとかFuelPHPがブーム。・IT 業界のキャリア 10 年ちょっと・西宮在住・...
アジェンダ1. 災害は忘れたころにやってくる! バックアップ基本知識2. シェルスクリプトを作ってバックアップを自動化しよう!3. WordPressはプラグインでバックアップ!4. リストアできてこそのバックアップ!
前置き:CMSバックアップの前提知識など
CMSを使っているサイトでは、何をバックアップする必要があるか?ファイル群一式   データベース
ファイル群一式複数のファイルを1つにまとめて圧縮する。tar コマンドを使うデータベースデータベースをファイルにエクスポートする。そのファイルを圧縮する。mysqldump, gzipコマンドを使う
CMSバックアップに必要な情報SSH接続         ファイル関連・ユーザ名         ・設置パス・パスワード・サーバアドレス         データベース(DB)関連・(SSHポート番号)      ・DBユーザ名         ...
例としてさくらのレンタルサーバを申し込みます
スタンダード以上のプランはSSHが使える
さくらレンタルサーバのコントロールパネル                    ホスト名                    ユーザ名           SSH接続情報は、FTP接続先と同じ。
データベースの設定
WordPressはクイックインストールで入れてます
hetemlの例では、SSH設定を有効にしないと使えない
SSHのポート指定が必要な例
1. 災害は忘れたころにやってくる! バックアップ基本知識2. シェルスクリプトを作ってバックアップを自動化しよう!3. WordPressはプラグインでバックアップ!4. リストアできてこそのバックアップ!
SSHでサーバに接続する
SSH接続に必要な情報( さ く ら レン タルサ ーバ の 例 )  サーバ       kyobashi0819.sakura.ne.jp  ユーザ名           kyobashi0819 パスワード              **...
フ ァ イルバ ッ ク ア ップ、 デ ー タベース バ ッ ク ア ッ  プに必要なコマンド  ・tar  ・mysqldump, mysql  ・gzip, gunzip  ・ftp※詳細を知るためにググるときは ”tarコマンド” などの...
Macの場合はターミナル.appで        ssh ユーザ名@サーバアドレス -p 接続ポート                                       ポート指定が必要ないレンタルサーバーの場合は不要$ ssh kyo...
C h r o m e の 拡 張 機 能 で も S S H が 使 える
サーバを覗いてみる%pwd/home/kyobashi0819%ls                                                            pwd : 現在のディレクトリ位置MailBox    ...
ファイルのバックアップを取る
複数ファイルを1つにまとめ圧縮するtarコマンド    tar cvzf       “作成する圧縮ファイル名”                        “対象フォルダ”%lsMailBox          db   ports    ...
データベースのバックアップを取る
データベースの設定情報
デ ー タベース バ ッ ク ア ップ に 必 要 な 情 報( さ く ら レン タルサ ーバ の 例 )      MySQL               mysql433.db.sakura.ne.jp     DBサーバ    DBユー...
DB接続確認  mysql -h サーバアドレス -u ユーザ名 -p%mysql -h mysql433.db.sakura.ne.jp -u kyobashi0819 -pEnter password:Welcome to the MySQ...
DBをファイルにエクスポート mysqldump -h サーバアドレス                     -u ユーザ名 -p                           データベース名                      ...
DBエクスポートファイルを圧縮する            gzip ファイル名%gzip kyobashi0819.sql%ls -ltotal 4928drwx------ 3 kyobashi0819 users    512 Mar 13...
mysqldumpの詳しい解説はマニュアル参照
FTPで別サーバに転送する
F T P サ ーバー 情 報      FTPサーバ       toyao.net      ユーザ名        kyobashiftp     パスワード         *********
FTPでファイルをアップロードする                       ftp ユーザ名@サーバ名%ftp kyobashiftp@toyao.netConnected to toyao.net.220 ProFTPD 1.3.4a S...
バッチシェルを作成する   vi backup.sh                         バックアップ用のシェルを作成する#!/bin/sh                                         ファイル圧...
コマンドの正確な場所(パス)を調べる            which コマンド名%which tar/usr/bin/tar%which mysqldump/usr/local/bin/mysqldump%which gzip/usr/bin...
参考:バッチシェル発展系(backup2.sh)#!/bin/shdatestr=`date +%Y%m%d-%H%M%S`/usr/bin/tar czf bkfiles/www_${datestr}.tar.gz www/usr/local...
参考:lftpコマンドはftpより便利1行のコマンドでファイルを転送できる。※ただし使用出来るサーバは少ない。lftp -u FTPユーザ,FTPパス -e set ftp:ssl-allow off; put ファイル名 FTPサーバ参考:C...
スケジュール実行する
例: 毎週月曜日朝5:00に実行する設定
1. 災害は忘れたころにやってくる! バックアップ基本知識2. シェルスクリプトを作ってバックアップを自動化しよう!3. WordPressはプラグインでバックアップ!4. リストアできてこそのバックアップ!
WordPressのバックアッププラグインBackWpUP
・ファイルとDBの両方バックアップ・バックアップファイルをFTP転送・スケジュール実行できる・実行結果をメール通知できる・DropBox/AmazonS3/GoogleStorage/ MicrosoftAzure/Rackspace Clou...
バックアップジョブを新規作成
FTPサーバへ              DropBoxへAmazon S3へ
1. 災害は忘れたころにやってくる! バックアップ基本知識2. シェルスクリプトを作ってバックアップを自動化しよう!3. WordPressはプラグインでバックアップ!4. リストアできてこそのバックアップ!
障害発生を想定して・データベースを消す・ファイルを消す
リストアする
リストア開始: データベースは再度新規作成する。
ファイルを解凍するtarコマンド            tar xvzf       圧縮ファイル名%tar xvzf www.tar.gzx www/                                  tar : ファイルを圧...
mysqlコマンドでデータベースリストア%ls -ltotal 4936-rw-r--r-- 1 kyobashi0819 users 42993 Aug 14 20:40kyobashi0819_wp1.sql.gz%gunzip kyoba...
リストア完了!
ありがとうございました
CMS時代のバックアップノウハウを身につけよう!
CMS時代のバックアップノウハウを身につけよう!
Upcoming SlideShare
Loading in …5
×

CMS時代のバックアップノウハウを身につけよう!

1,742 views

Published on

2012/8/19実施「CMS時代のバックアップノウハウを身につけよう」勉強会資料

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,742
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
0
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • CMS時代のバックアップノウハウを身につけよう!

    1. 1. CMS時代のバックアップノウハウを 身につけよう! 2012.8.19 上村崇
    2. 2. 自己紹介・上村崇 ( うえむらたかし )・フリーランスのシステムエンジニア・サーバインフラ、組込みシステム、Web とか。・C、PHP。最近はCodeIgniterとかFuelPHPがブーム。・IT 業界のキャリア 10 年ちょっと・西宮在住・WordPressのコミュニティWordBench 神戸に在籍
    3. 3. アジェンダ1. 災害は忘れたころにやってくる! バックアップ基本知識2. シェルスクリプトを作ってバックアップを自動化しよう!3. WordPressはプラグインでバックアップ!4. リストアできてこそのバックアップ!
    4. 4. 前置き:CMSバックアップの前提知識など
    5. 5. CMSを使っているサイトでは、何をバックアップする必要があるか?ファイル群一式 データベース
    6. 6. ファイル群一式複数のファイルを1つにまとめて圧縮する。tar コマンドを使うデータベースデータベースをファイルにエクスポートする。そのファイルを圧縮する。mysqldump, gzipコマンドを使う
    7. 7. CMSバックアップに必要な情報SSH接続 ファイル関連・ユーザ名 ・設置パス・パスワード・サーバアドレス データベース(DB)関連・(SSHポート番号) ・DBユーザ名 ・DBパスワード ・DBサーバアドレス ・DB名
    8. 8. 例としてさくらのレンタルサーバを申し込みます
    9. 9. スタンダード以上のプランはSSHが使える
    10. 10. さくらレンタルサーバのコントロールパネル ホスト名 ユーザ名 SSH接続情報は、FTP接続先と同じ。
    11. 11. データベースの設定
    12. 12. WordPressはクイックインストールで入れてます
    13. 13. hetemlの例では、SSH設定を有効にしないと使えない
    14. 14. SSHのポート指定が必要な例
    15. 15. 1. 災害は忘れたころにやってくる! バックアップ基本知識2. シェルスクリプトを作ってバックアップを自動化しよう!3. WordPressはプラグインでバックアップ!4. リストアできてこそのバックアップ!
    16. 16. SSHでサーバに接続する
    17. 17. SSH接続に必要な情報( さ く ら レン タルサ ーバ の 例 ) サーバ kyobashi0819.sakura.ne.jp ユーザ名 kyobashi0819 パスワード *********** 接続ポート 22(デフォルトポート)※ ※レンタルサーバによっては、22以外のポートを使用している場合が ある。そのときは接続時にポートの指定が必要
    18. 18. フ ァ イルバ ッ ク ア ップ、 デ ー タベース バ ッ ク ア ッ プに必要なコマンド ・tar ・mysqldump, mysql ・gzip, gunzip ・ftp※詳細を知るためにググるときは ”tarコマンド” などのキーワードで検索するとよい。heteml の例では、SSHで使えるコマンドが限られており、ftpコマンドが使えない。http://heteml.jp/support/manual/sshsetting/
    19. 19. Macの場合はターミナル.appで ssh ユーザ名@サーバアドレス -p 接続ポート ポート指定が必要ないレンタルサーバーの場合は不要$ ssh kyobashi0819@kyobashi0819.sakura.ne.jpThe authenticity of host kyobashi0819.sakura.ne.jp (49.212.180.54) cant beestablished.RSA key fingerprint is 41:56:4d:82:b8:a5:8e:6c:c2:fd:f8:c5:23:b8:8d:39.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added kyobashi0819.sakura.ne.jp (RSA) to the list ofknown hosts.kyobashi0819@kyobashi0819.sakura.ne.jps password: パスワードLast login: Tue Aug 14 17:10:36 2012 from 101.142.8.151Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved.FreeBSD 8.1-RELEASE-p12 (SAKURA13) #0: Mon Jul 30 16:43:00 JST 2012Welcome to FreeBSD!% sshでサーバに接続できた!
    20. 20. C h r o m e の 拡 張 機 能 で も S S H が 使 える
    21. 21. サーバを覗いてみる%pwd/home/kyobashi0819%ls pwd : 現在のディレクトリ位置MailBox db ports sblo_files www%ls -ltotal 20 ls : ファイル一覧drwx------ 3 kyobashi0819 users 512 Mar 13 2009 MailBoxdrwx------ 3 kyobashi0819 users 512 Aug 14 16:49 dbdrwx------ 11 kyobashi0819 users 512 Aug 14 16:49 ports ls -l : ファイル一覧(詳細)drwxr-xr-x 2 kyobashi0819 users 512 Mar 13 2009 sblo_filesdrwxr-xr-x 3 kyobashi0819 users 512 Aug 14 16:49 www%ls -l wwwtotal 4 wwwがWebコンテンツ置き場drwx---r-x 5 kyobashi0819 users 1024 Aug 14 16:49 wp%ls -l www/wptotal 184-rw-r--r-- 1 kyobashi0819 users 395 Jan 9 2012 index.php-rw-r--r-- 1 kyobashi0819 users 19929 May 6 16:28 license.txt-rw-r--r-- 1 kyobashi0819 users 3128 Jun 28 15:48 readme-ja.html-rw-r--r-- 1 kyobashi0819 users 13270 Jun 28 15:48 readme.html-rw-r--r-- 1 kyobashi0819 users 4264 Dec 14 2011 wp-activate.phpdrwxr-xr-x 9 kyobashi0819 users 2560 Jun 28 15:48 wp-admin-rw-r--r-- 1 kyobashi0819 users 1354 May 14 06:41 wp-app.php-rw-r--r-- 1 kyobashi0819 users 271 Jan 9 2012 wp-blog-header.php-rw-r--r-- 1 kyobashi0819 users 3522 Apr 11 02:21 wp-comments-post.php-rw-r--r-- 1 kyobashi0819 users 4289 Jun 28 15:48 wp-config-sample.php-rw-r--r-- 1 kyobashi0819 users 4216 Aug 14 16:49 wp-config.php・・・
    22. 22. ファイルのバックアップを取る
    23. 23. 複数ファイルを1つにまとめ圧縮するtarコマンド tar cvzf “作成する圧縮ファイル名” “対象フォルダ”%lsMailBox db ports sblo_files www%tar cvzf www.tar.gz wwwa www tar : ファイルを圧縮・展開するa www/wp c: 複数ファイルを1つにa www/wp/wp-admina www/wp/wp-includes v: 詳細表示a www/wp/wp-content z: 圧縮a www/wp/wp-settings.phpa www/wp/wp-mail.php f: ファイル指定a www/wp/wp-login.php・・・ ls -l : ファイル一覧(詳細)%ls -ltotal 4884drwx------ 11 kyobashi0819 users 512 Aug 14 16:49 portsdrwxr-xr-x 3 kyobashi0819 users 512 Aug 14 17:49 www-rw-r--r-- 1 kyobashi0819 users 4962258 Aug 14 17:50 www.tar.gz 圧縮ファイルが出来ている!
    24. 24. データベースのバックアップを取る
    25. 25. データベースの設定情報
    26. 26. デ ー タベース バ ッ ク ア ップ に 必 要 な 情 報( さ く ら レン タルサ ーバ の 例 ) MySQL mysql433.db.sakura.ne.jp DBサーバ DBユーザ名 kyobashi0819 データベース名 kyobashi0819_wp1 DBパスワード **********
    27. 27. DB接続確認 mysql -h サーバアドレス -u ユーザ名 -p%mysql -h mysql433.db.sakura.ne.jp -u kyobashi0819 -pEnter password:Welcome to the MySQL monitor. Commands end with ; or g. パスワードYour MySQL connection id is 1100640Server version: 5.5.15-log Source distributionCopyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type help; or h for help. Type c to clear the current input statement.mysql> show databases;+--------------------+ show databases : DBの一覧を見る| Database |+--------------------+| information_schema | データベース kyobashi0819_wp1が存在しているのが分かる| kyobashi0819_wp1 |+--------------------+2 rows in set (0.04 sec)mysql> exit; exit : DB接続終了Bye%
    28. 28. DBをファイルにエクスポート mysqldump -h サーバアドレス -u ユーザ名 -p データベース名 > ファイル名%mysqldump -h mysql433.db.sakura.ne.jp -u kyobashi0819 -p kyobashi0819_wpkyobashi0819.sqlEnter password:%ls -l パスワードtotal 5140drwx------ 3 kyobashi0819 users 512 Mar 13 2009 MailBoxdrwx------ 3 kyobashi0819 users 512 Aug 14 16:49 db-rw-r--r-- 1 kyobashi0819 users 239799 Aug 14 18:04 kyobashi0819.sqldrwx------ 11 kyobashi0819 users 512 Aug 14 16:49 portsdrwxr-xr-x 2 kyobashi0819 users DBエクスポートファイルが出来ている! 512 Mar 13 2009 sblo_filesdrwxr-xr-x 3 kyobashi0819 users 512 Aug 14 17:49 www-rw-r--r-- 1 kyobashi0819 users 4962258 Aug 14 17:50 www.tar.gz
    29. 29. DBエクスポートファイルを圧縮する gzip ファイル名%gzip kyobashi0819.sql%ls -ltotal 4928drwx------ 3 kyobashi0819 users 512 Mar 13 2009 MailBoxdrwx------ 3 kyobashi0819 users 512 Aug 14 16:49 db-rw-r--r-- 1 kyobashi0819 users 42988 Aug 14 18:04 kyobashi0819.sql.gzdrwx------ 11 kyobashi0819 users 512 Aug 14 16:49 portsdrwxr-xr-x 2 kyobashi0819 users 512 Mar 13 2009 sblo_filesdrwxr-xr-x 3 kyobashi0819 users 512 Aug 14 17:49 www-rw-r--r-- 1 kyobashi0819 users 4962258 Aug 14 17:50 www.tar.gz ファイルが圧縮されている!
    30. 30. mysqldumpの詳しい解説はマニュアル参照
    31. 31. FTPで別サーバに転送する
    32. 32. F T P サ ーバー 情 報 FTPサーバ toyao.net ユーザ名 kyobashiftp パスワード *********
    33. 33. FTPでファイルをアップロードする ftp ユーザ名@サーバ名%ftp kyobashiftp@toyao.netConnected to toyao.net.220 ProFTPD 1.3.4a Server (redfern) [::ffff:192.168.0.109]331 kyobashiftp のパスワードを入力しくださいPassword:230 kyobashiftp がログインしましたRemote system type is UNIX.Using binary mode to transfer files.ftp> put www.tar.gz put ファイル : ファイルをアップロードするlocal: www.tar.gz remote: www.tar.gz229 Entering Extended Passive Mode (|||10022|)150 BINARYモードのデータ接続をオープンします www.tar.gz100% |***********************************************| 4845 KB 8.13 MB/s 00:00 ETA226 転送が完了しました4962258 bytes sent in 00:00 (7.75 MB/s)ftp> put kyobashi0819.sql.gzlocal: kyobashi0819.sql.gz remote: kyobashi0819.sql.gz229 Entering Extended Passive Mode (|||10026|)150 BINARYモードのデータ接続をオープンします kyobashi0819.sql.gz100% |***********************************************| 42988 22.52 MB/s 00:00 ETA226 転送が完了しました42988 bytes sent in 00:00 (2.53 MB/s)ftp> bye bye : ftp接続終了221 さようなら.%
    34. 34. バッチシェルを作成する vi backup.sh バックアップ用のシェルを作成する#!/bin/sh ファイル圧縮/usr/bin/tar czf www.tar.gz www/usr/local/bin/mysqldump -h mysql433.db.sakura.ne.jp -u kyobashi0819 -p**********kyobashi0819_wp1 > kyobashi0819_wp1.sql DBエクスポート/usr/bin/gzip kyobashi0819_wp1.sql DBエクスポートファイル圧縮/usr/bin/ftp -i -v -n toyao.net <<EOFuser kyobashiftp kyobashiftp0819 FTPコマンド開始bin ユーザ名、パスワードput www.tar.gzput kyobashi0819_wp1.sql.gz ファイル転送EOF chmod +x backup.sh backup.shに実行権限を与える ./baskup.sh backup.shを実行する
    35. 35. コマンドの正確な場所(パス)を調べる which コマンド名%which tar/usr/bin/tar%which mysqldump/usr/local/bin/mysqldump%which gzip/usr/bin/gzip which コマンド名 : コマンドの絶対パスを調べる%which ftp/usr/bin/ftp
    36. 36. 参考:バッチシェル発展系(backup2.sh)#!/bin/shdatestr=`date +%Y%m%d-%H%M%S`/usr/bin/tar czf bkfiles/www_${datestr}.tar.gz www/usr/local/bin/mysqldump -h mysql433.db.sakura.ne.jp -u kyobashi0819 -p***********kyobashi0819_wp1 > bkfiles/kyobashi0819_wp1_${datestr}.sql/usr/bin/gzip bkfiles/kyobashi0819_wp1_${datestr}.sql/usr/bin/ftp -i -v -n toyao.net <<EOFuser kyobashiftp ************binlcd bkfilesput www_${datestr}.tar.gzput kyobashi0819_wp1_${datestr}.sql.gzEOF# delete files over 30days agofind bkfiles/ -name "*gz" -mtime +30 -exec rm {} ;
    37. 37. 参考:lftpコマンドはftpより便利1行のコマンドでファイルを転送できる。※ただし使用出来るサーバは少ない。lftp -u FTPユーザ,FTPパス -e set ftp:ssl-allow off; put ファイル名 FTPサーバ参考:Command Technica:lftpで行う手軽なバックアップ - ITmedia エンタープライズhttp://www.itmedia.co.jp/enterprise/articles/0804/25/news014.html
    38. 38. スケジュール実行する
    39. 39. 例: 毎週月曜日朝5:00に実行する設定
    40. 40. 1. 災害は忘れたころにやってくる! バックアップ基本知識2. シェルスクリプトを作ってバックアップを自動化しよう!3. WordPressはプラグインでバックアップ!4. リストアできてこそのバックアップ!
    41. 41. WordPressのバックアッププラグインBackWpUP
    42. 42. ・ファイルとDBの両方バックアップ・バックアップファイルをFTP転送・スケジュール実行できる・実行結果をメール通知できる・DropBox/AmazonS3/GoogleStorage/ MicrosoftAzure/Rackspace Cloud にも転送可能・リストアがブラウザからできる・ただし英語
    43. 43. バックアップジョブを新規作成
    44. 44. FTPサーバへ DropBoxへAmazon S3へ
    45. 45. 1. 災害は忘れたころにやってくる! バックアップ基本知識2. シェルスクリプトを作ってバックアップを自動化しよう!3. WordPressはプラグインでバックアップ!4. リストアできてこそのバックアップ!
    46. 46. 障害発生を想定して・データベースを消す・ファイルを消す
    47. 47. リストアする
    48. 48. リストア開始: データベースは再度新規作成する。
    49. 49. ファイルを解凍するtarコマンド tar xvzf 圧縮ファイル名%tar xvzf www.tar.gzx www/ tar : ファイルを圧縮・展開するx www/wp/ x: 展開x www/wp/wp-admin/x www/wp/wp-includes/ v: 詳細表示x www/wp/wp-content/ z: 圧縮ファイルx www/wp/wp-settings.phpx www/wp/wp-mail.php f: ファイル指定x www/wp/wp-login.php・・・ ls -l : ファイル一覧(詳細)%ls -l wwwtotal 4drwx---r-x 5 kyobashi0819 users 1024 Aug 14 16:49 wp wpディレクトリが復活している!
    50. 50. mysqlコマンドでデータベースリストア%ls -ltotal 4936-rw-r--r-- 1 kyobashi0819 users 42993 Aug 14 20:40kyobashi0819_wp1.sql.gz%gunzip kyobashi0819_wp1.sql.gz gunzip : gzファイルを解凍%ls -ltotal 5148-rw-r--r-- 1 kyobashi0819 users 239799 Aug 14 20:40kyobashi0819_wp1.sql%mysql -h mysql433.db.sakura.ne.jp -u kyobashi0819 -pkyobashi0819_wp1 < kyobashi0819_wp1.sqlEnter password:% パスワードDBリストア mysql -h サーバ名 が完了! -u ユーザ名 -p データベース名 < リストアファイル
    51. 51. リストア完了!
    52. 52. ありがとうございました

    ×