MySQLはじめの一歩

データベースへのアクセス

パスワードを入力しMySQLへアクセス

データベースの確認

データベース名の一覧が表示されます

使用するデータベースに切り替える

使用するデータベースに切り替わります
※データベース名がわかっている場合は、データベースにアクセスする際に、

としてもOKです。

対象データベースのテーブル構造の確認

テーブルの一覧が表示されます

各テーブルの構造、カラム(フィールド)の確認

各フィールドから条件に合致するデータを抽出

見やすいよう調整

縦に並べて表示する

何件かを表示する

順序調整

※備考
・desc ・・・ 降順
・asc ・・・ 昇順

データベースのバックアップ

バックアップを保存したいディレクトリにて

コマンドの実行結果・標準出力をファイルに保存

findとxargsとgrepを使って、特定の文字列を含むファイルを見つける方法で特定の文字列を含むファイルを標準出力で表示させる方法を記載しました。

今回はその標準出力の内容をファイルとして保存する方法をまとめます。

標準出力をファイルに保存

findとxargsとgrepを使って、特定の文字列を含むファイルを見つける方法で”kusanagi_user”という文字列が含まれるファイルを検索する方法を記載しました。その結果をファイルとして保存します。
次のように記述します。

コマンド

の結果をtestディレクトリのxargs.phpとして保存しました。
xargs.phpの内容を見ると

の結果標準出力されていた結果である、下記がファイルとして保存されています。

  • コマンド > ファイル名
    コマンドの実行結果をファイルに上書き保存します。
  • コマンド >> ファイル名
    コマンドの実行結果をファイルに追記します。
  • コマンド >& ファイル名
    コマンドの実行結果とエラー出力をファイルに上書きします
  • コマンド 2> ファイル名
    コマンドのエラー出力をファイルに上書きします。
  • コマンド 2>> ファイル名
    コマンドのエラー出力をファイルに追記します。

xargs

書式

標準入力から受け取った文字列を引数に指定して、与えられたコマンドを実行します。

例)60日以上更新されていないファイルを削除する

xargsコマンドは、findコマンドの実行結果を受け取って、rmコマンドの引数に渡してそれを実行します。
xargsコマンドの利点は引数が多すぎた場合でも処理できることです。例えば引数が非常に多数のファイルがあるディレクトリでrmコマンドを実行するとシェルの制限を超えてしまうことがあります。
このような場合にxargsコマンドを使うと、制限を超えないよう適切に処理をしてくれます。

SSLを利用する方法

SSLとは

SSLはWebブラウザとWebサーバーの間でやり取りする情報を暗号化して通信するためのプロトコルです。
暗号化とは通常なら平文でやり取りされている情報を、第3者がわからないように形式に変換することです。

SSL暗号化通信の流れ

クライアント側が共通鍵を使って暗号化したデータをサーバ側に送り、サーバ側は事前にクライアント側から送られた共通鍵を使ってデータを復号します。公開鍵、秘密鍵はクライアント・サーバ間で事前に共通鍵を安全に授受するために使用されます。

  1. 接続要求
    クライアント(PCのブラウザ)から、セキュアなページ(https://~)ヘアクセスをし、SSL暗号化通信で接続を要求します。
  2. サーバー証明書(公開鍵付き)送付
    Webサーバーは、自身を証明するSSLサーバー証明書をクライアントへ送ります。このサーバー証明書は認証局(CA)(※)が発行する「身元保証つき公開鍵」のことです。
    (※)デジタル証明書の発行をする組織のこと。通常はシマンテックやGeotrustなどの民間企業が認証局になる。認証局は、鍵と証明書のライフサイクル管理したりデジタル証明書の発行を申請した人の正当性の審査などを行なう。
  3. データ本体の暗号化、共通鍵の生成と暗号化
    クライアントは共通鍵を生成し、データ本体の暗号化を行います。
    またSSLサーバー証明書を受け取り、SSLサーバー証明書からWebサーバーの公開鍵を取得し、取得した公開鍵で生成した共通鍵を暗号化します。
  4. 暗号化されたデータと共通鍵の送付
    クライントは暗号化したデータと暗号化した共通鍵をWebサーバーへおくります。
    Webサーバーは暗号化された共通鍵をWebサーバーの秘密鍵で復号化します。復号化した共通鍵を用いて暗号化されたデータを復号化します。
  5. 暗号化通信開始
    クライアント、Webサーバーの両者が共通鍵を用いて、SSL通信が行われます。

SSLの導入方法

Apache + OpenSSLを新規に生成する手順についてまとめます。(OpenSSLがインストールされていることを想定します。)

SSL通信を利用するには公開鍵と秘密鍵のペアならびにデジタル証明書が必要になります。これらをOpenSSLコマンドを利用して生成します。
生成するファイルは以下の3つです。

  1. 秘密鍵ファイル:www.hogehoge.com.key
  2. CSRファイル(公開鍵+証明書申請情報):www.hogehoge.com.csr
  3. デジタル証明書:www.hogehoge.com.crt

Webサーバーの秘密鍵の生成

擬似乱数ファイルの作成

秘密鍵作成のための擬似乱数の情報を生成します。

秘密鍵を作成する任意のディレクトリに移動します。

今回はMD5(ハッシュ関数)を擬似乱数として使用します。

秘密鍵ファイルの作成

作成した擬似乱数ファイル(rand.dat)から、秘密鍵を作成します。

※RSA形式(genrsa)、2048bitの秘密鍵www.hogehoge.com.keyを作成しました。

Webサーバーの公開鍵の生成

CSRファイルの作成

CSRファイルとは、公開鍵の情報の他に、作成時に指定する組織名や組織の所在地などの情報を含むデータのことです。CSRファイルは認証局からデジタル証明書を発行してもらうときに必要になります。
次の様に入力します。

入力すると、ディスティングイッシュネーム情報(公開鍵情報)の入力が求められます。
入力する情報は下記のとおりです。

  • Country Name:国名:例)JP
  • State or Province Name:例)都道府県名:Tokyo
  • Locality Name:区町村名:例)Chiyoda-ku
  • Organization Name:組織名:例)HOGEHOGE CO.,LTD.
  • Organizational Unit Name:部門名:例)system
  • Common Name:導入するサイトのURL:例)www.hogehoge.co.jp
  • Email Address:メールアドレス:例)yoshihiro@hogehoge.co.jp
  • A challenge password:証明書を破棄する場合に必要になるパスワード
  • An optional company name:別の組織名がある場合その組織名

※「A challenge password」と「An optional company name」は空欄でもかまいません。

以上でCSRファイルが生成できました。
生成されたCSRの内容はSSLを申請する際に利用します。

デジタル証明書の作成

SSL通信にはCAが発行した証明書が必要です。一般的にはシマンテックやGeotrustなどから正式なデジタル証明書を発行してもらいます。

  • 申込画面から先ほど作成したCSRの内容を入力欄に貼り付けます。
  • 申請する企業情報(自社)の情報を入力します。
  • 任意の承認方法を選択します。

以上で申請を行なうと、デジタル証明書と中間証明書の記載されたメールが届きます。

デジタル証明書の適用

1.SSLサーバー証明書を保存
CAから送られてきたSSLサーバー証明書をwww.hogehoge.com.crtとして保存します。

2.中間証明書の準備
CAから送られてきた中間証明書をwww.hogehoge.com.cb_crtに保存します。

3.SSLサーバー証明書のインストール
SSL設定ファイルssl.confに秘密鍵、デジタル証明書、中間証明書のパスを記述します。

4.apacheを再起動します
再起動する前に記述した構文が正しいか、service httpd configtest で確認を行います。問題ないようでしたらservice httpd restart で適用します。

WordPressのバックアップとリストア

WordPressのバックアップを行う場合、対象データは以下の2つです。

  • WordPressファイル一式
  • データベース

WordPressファイル一式

まずはWordPressファイル一式=WordPressの入ったディレクトリを丸ごと圧縮します。

http://www.hogehoge.com/

KUSANAGI 1の場合、kusanagi provisionで作成したプロファイル名のディレクトリ内のDocumentRootにWordPress1が展開されます。
そのためこのDocumentRootを圧縮します。
例)/home/kusanagi/hogehoge/DocumentRoot

hogehoge_bk.tar.gzというファイル名にてバックアップがとれ、サイト全体のバックアップがとれました。

データベース

MySQLのデータをバックアップ (ダンプ) するにはmysqldumpを使用します。
次のように入力します。

例)ユーザーroot、ダンプ用ファイル名をhogehoge_DB_BK.sqlとする

ファイルのリストア

さきほど圧縮したtar.gzで圧縮したファイルを解凍します。
hogehoge_bk.tar.gzを回答する際は次のように入力します。

データベースのリストア

さきほどダンプしたsqlファイルからデータベースのリストアを行います。
hogehoge_DB_BK.sqlからwordpress_dbへデータをリストアする際には次のように入力します。

Notes:

  1. プライム・ストラテジーが提供する超高速WordPress仮想マシン。脚注のプラグインSimple Footnotesのテスト用に記述しています。

sshを利用してリモートマシン間でファイルコピーする

scpコマンドにより、sshを利用してリモートマシン間でファイルコピーすることができます。

例)コピー元のファイル(test.txt)をリモートマシン(ホスト名:www.hogehoge.com)の/home/hogeディレクトリにコピーします。ホスト名(またはIPアドレス)とコピー先ディレクトリの間は、コロン「:」で区切ります。

pingコマンド

ネットワーク疎通を確認したいホストに対してIPパケットを発行しそのパケットが正しく届いて返答が行われるかを確認するためのコマンド。
pingコマンドが正常に実行できれば通常はホスト間のネットワークは通常であると判断できる
また統計値を表示することで基本的なネットワーク性能を簡易に計測することができる。
→ ネットワークの伝送時間

※WordPressサイトの場合、Firebugのタイムラインの数値からpingコマンドで得られる応答時間を引いた数値がおおよそのWordPress実行時間

https://www.cman.jp/network/term/ping/