• Save
CMS時代のバックアップノウハウを身につけよう!
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

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

on

  • 1,588 views

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

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

Statistics

Views

Total Views
1,588
Views on SlideShare
1,583
Embed Views
5

Actions

Likes
6
Downloads
0
Comments
0

1 Embed 5

https://twitter.com 5

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \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時代のバックアップノウハウを身につけよう! Presentation Transcript

  • 1. CMS時代のバックアップノウハウを 身につけよう! 2012.8.19 上村崇
  • 2. 自己紹介・上村崇 ( うえむらたかし )・フリーランスのシステムエンジニア・サーバインフラ、組込みシステム、Web とか。・C、PHP。最近はCodeIgniterとかFuelPHPがブーム。・IT 業界のキャリア 10 年ちょっと・西宮在住・WordPressのコミュニティWordBench 神戸に在籍
  • 3. アジェンダ1. 災害は忘れたころにやってくる! バックアップ基本知識2. シェルスクリプトを作ってバックアップを自動化しよう!3. WordPressはプラグインでバックアップ!4. リストアできてこそのバックアップ!
  • 4. 前置き:CMSバックアップの前提知識など
  • 5. CMSを使っているサイトでは、何をバックアップする必要があるか?ファイル群一式 データベース
  • 6. ファイル群一式複数のファイルを1つにまとめて圧縮する。tar コマンドを使うデータベースデータベースをファイルにエクスポートする。そのファイルを圧縮する。mysqldump, gzipコマンドを使う
  • 7. CMSバックアップに必要な情報SSH接続 ファイル関連・ユーザ名 ・設置パス・パスワード・サーバアドレス データベース(DB)関連・(SSHポート番号) ・DBユーザ名 ・DBパスワード ・DBサーバアドレス ・DB名
  • 8. 例としてさくらのレンタルサーバを申し込みます
  • 9. スタンダード以上のプランはSSHが使える
  • 10. さくらレンタルサーバのコントロールパネル ホスト名 ユーザ名 SSH接続情報は、FTP接続先と同じ。
  • 11. データベースの設定
  • 12. WordPressはクイックインストールで入れてます
  • 13. hetemlの例では、SSH設定を有効にしないと使えない
  • 14. SSHのポート指定が必要な例
  • 15. 1. 災害は忘れたころにやってくる! バックアップ基本知識2. シェルスクリプトを作ってバックアップを自動化しよう!3. WordPressはプラグインでバックアップ!4. リストアできてこそのバックアップ!
  • 16. SSHでサーバに接続する
  • 17. SSH接続に必要な情報( さ く ら レン タルサ ーバ の 例 ) サーバ kyobashi0819.sakura.ne.jp ユーザ名 kyobashi0819 パスワード *********** 接続ポート 22(デフォルトポート)※ ※レンタルサーバによっては、22以外のポートを使用している場合が ある。そのときは接続時にポートの指定が必要
  • 18. フ ァ イルバ ッ ク ア ップ、 デ ー タベース バ ッ ク ア ッ プに必要なコマンド ・tar ・mysqldump, mysql ・gzip, gunzip ・ftp※詳細を知るためにググるときは ”tarコマンド” などのキーワードで検索するとよい。heteml の例では、SSHで使えるコマンドが限られており、ftpコマンドが使えない。http://heteml.jp/support/manual/sshsetting/
  • 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. C h r o m e の 拡 張 機 能 で も S S H が 使 える
  • 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. ファイルのバックアップを取る
  • 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. データベースのバックアップを取る
  • 25. データベースの設定情報
  • 26. デ ー タベース バ ッ ク ア ップ に 必 要 な 情 報( さ く ら レン タルサ ーバ の 例 ) MySQL mysql433.db.sakura.ne.jp DBサーバ DBユーザ名 kyobashi0819 データベース名 kyobashi0819_wp1 DBパスワード **********
  • 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. 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. 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. mysqldumpの詳しい解説はマニュアル参照
  • 31. FTPで別サーバに転送する
  • 32. F T P サ ーバー 情 報 FTPサーバ toyao.net ユーザ名 kyobashiftp パスワード *********
  • 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. バッチシェルを作成する 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. コマンドの正確な場所(パス)を調べる which コマンド名%which tar/usr/bin/tar%which mysqldump/usr/local/bin/mysqldump%which gzip/usr/bin/gzip which コマンド名 : コマンドの絶対パスを調べる%which ftp/usr/bin/ftp
  • 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. 参考: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. スケジュール実行する
  • 39. 例: 毎週月曜日朝5:00に実行する設定
  • 40. 1. 災害は忘れたころにやってくる! バックアップ基本知識2. シェルスクリプトを作ってバックアップを自動化しよう!3. WordPressはプラグインでバックアップ!4. リストアできてこそのバックアップ!
  • 41. WordPressのバックアッププラグインBackWpUP
  • 42. ・ファイルとDBの両方バックアップ・バックアップファイルをFTP転送・スケジュール実行できる・実行結果をメール通知できる・DropBox/AmazonS3/GoogleStorage/ MicrosoftAzure/Rackspace Cloud にも転送可能・リストアがブラウザからできる・ただし英語
  • 43. バックアップジョブを新規作成
  • 44. FTPサーバへ DropBoxへAmazon S3へ
  • 45. 1. 災害は忘れたころにやってくる! バックアップ基本知識2. シェルスクリプトを作ってバックアップを自動化しよう!3. WordPressはプラグインでバックアップ!4. リストアできてこそのバックアップ!
  • 46. 障害発生を想定して・データベースを消す・ファイルを消す
  • 47. リストアする
  • 48. リストア開始: データベースは再度新規作成する。
  • 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. 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. リストア完了!
  • 52. ありがとうございました