rsyncでバックアップ

個人の趣味で使用しているサーバですし、厳密にバックアップを考えた運用をしたいと言うわけではありませんが、万が一というときにバックアップがあ ると安心というのはあると思います。これはさくらインターネットのサーバでデータがどの程度バックアップされているかという以外にも、ミスによりデータを 消したり変更したりしてしまったときの保険という意味でも安心につながります。

そこでサーバのデータをお手軽にローカルのマシンにもコピーするツールとしてrsyncを使いたいと思います。もっとも私はrsync以外のバックアップツールや業務レベルでバックアップの運用知識はありませんが。

とりあえずrsyncの使い方は簡単です。

$ rsync オプション コピー元 コピー先

rsyncが最近どの程度使われているかは知りませんが、ツール自体は自宅のFedora環境にも入ってますし、さくらインターネットのFreeBSD環境にも入ってます。

今回はローカル側からrsyncコマンドを実行することにします。

$ rsync -a –delete ユーザ名@サーバ名:www sakura

これでサーバ上のwwwディレクトリがローカルのsakuraディレクトリにバックアップされます。-aというのは属性の保存などをまとめて指定す るバックアップ用の便利なオプションです。デフォルトの動作ではコピー元で削除されたファイルがコピー先に存在しても削除されませんが–deleteを指 定することで削除されます。これで完全にコピー元のミラーがコピー先に構築されることになります。

初回はすべてのファイルをコピーするので多少時間がかかりますが、2回目以降は変更された部分のみのコピーなので無駄もありません。

他にもよく使われるオプションとして、-vでコピーしているファイル名の表示、-zでコピーするファイルを圧縮して転送などがあります。こちらのIT mediaの記事にもう少し詳しい説明があります。ディレクトリの指定をするときの末尾のスラッシュは慣れるまで注意が必要だと思います。

データのやりとりはsshを使って行われています。以前はrshを使うのがデフォルトであったため、-eオプションでsshを指定する必要がありましたが、どうやら最近はsshがデフォルトになったようです。

前回のエントリでDSA認証を使ってパスワードなしでsshを使用する設定をしていますので、今回のこのバックアップでもパスワードを要求されることはなく便利です。

Tera Termを使ってWindowsからssh

ブラウザを使ったりとか日本語を入力したりとかも含めて日常的な端末としてはやっぱりWindowsを使う人は多いと思うのですが、Windows のマシンからシェル作業をするためのターミナルソフトの定番と言えばTera Termだと思います。一時期開発が終了していましたが、現在はオープンソースで開発されているようで、UTF-8対応もssh機能も組み込まれててかな りいい感じです。私も愛用させていただいています。サイトはこちら。Tera Term以外だとPuTTYが有名ですね。

前回のエントリではUnix環境でのDSA認証の設定を行いましたが、Tera TermでもDSA認証を行うことが出来ます。

まず鍵の生成ですが、メニューの[設定]→[SSHキー生成]を選ぶと鍵を生成することができます。ここではDSA鍵を生成することにします。キー が生成されると公開鍵と秘密鍵をそれぞれ保存できます。適当に自分の使いやすいディレクトリに保存すればいいと思います。このときにパスフレーズを入力す ると秘密鍵は暗号化されて保存されます。前のエントリにもあるように、今回はパスワード入力を省略するのが目的ですので、パスフレーズは入力しません。

生成された公開鍵は前回のエントリと同様にリモートのマシンの~/.ssh/authorized_keysファイルに追加します。

これで準備はOKです。sshで接続するときにDSA鍵認証というのを選び、先ほど生成した鍵を指定すればパスワードを入力することなくログインで きます。UIの都合上もありますが、Unix環境の場合ほどパスワードを入力しないことによる手間軽減のメリットはないかもしれません。

一応デフォルトの設定を変更することが出来て、メニューの[設定]→[SSH認証]であらかじめDSA認証をするということと、鍵ファイルを指定し ておくことが出来ます。それとTera Term一般の注意事項ですが、設定を変更してもメニューの[設定]→[設定の保存]を選ばないと変更が保存されないので注意が必要です。

DSA認証を使ってパスワードなしでssh

sshでサーバにログインするときやscpでファイルをコピーするときに毎回パスワードを入力するのは面倒だなあと考えるのが人情です。

そこで毎回パスワードを入力しなくてすむような設定にしようと考えるわけですが、sshではパスワード認証以外に、DSA認証やRSA認証という公開鍵を使った認証が使用できます。細かい違いがあるとは思いますがここではあまり深く気にせずDSA認証を使うことにします。

ローカルのマシンで以下のコマンドを実行すると~/.sshディレクトリにDSA鍵が生成されます。

$ ssh-keygen -t dsa

ここで鍵を生成するときにパスフレーズの入力を求められます。秘密鍵をパスフレーズで保護するのがセキュリティ的にはよりよいのでしょう。しかし、 それだとせっかくパスワード認証をやめてパスワードの入力をしなくてすむようになったのに、DSA秘密鍵を使うためにパスフレーズを入力しなくてはいけな くなり本末転倒です。

そこでパスフレーズを入力しなくていい方法を探すことになりますが、おそらくよりセキュリティ的に正しい方法はssh-agentを利用して一度パスフレーズを入力するとその後は入力しなくてすむようにする方法だと思われます。

しかし、個人的にはssh-agentを使うというのは面倒な上に中途半端なイメージで出来れば避けたいものです。そこで最初の鍵生成の所に話が戻 りますが、鍵を生成するときにパスフレーズを指定しなければ、パスフレーズなしの鍵が生成されます。具体的には上記のコマンドを実行後にエンターを連打し てればOKです。

そして公開鍵をリモートのマシンの~/.ssh/authorized_keysというファイルに追加します。今回の私の環境ではさくらインターネットのサーバですね。

$ scp ~/.ssh/id_dsa.pub ユーザ名@リモートマシン:

リモートのマシンにログインした後に

$ mkdir .ssh

$ cat id_dsa.pub >> .ssh/authorized_keys

$ rm id_dsa.pub

これで毎回パスワードを入力することなくログインできるようになります。セキュリティ的な議論はどうなるのでしょうか。秘密鍵が盗まれるような状況でパスフレーズがあるのは気休めかそれとも本質的にセキュリティが向上するのか。

Fedora

せっかくブログを始めたので色々とネタを投入していきたいと思いますが、まずは初めに私の作業環境的なものを書いておきましょう。

レンタルサーバとしてさくらインターネットのスタンダードプランを契約していると以前のエントリに書きました。たしかにこのサーバはシェルも使えて いろいろ楽しめるのですが、ルート権限が使えるわけではないですし、インストールされているソフトも限られているのでいろいろ試してみるには面倒な部分も あります。

そこでそういうときは自宅のマシンで作業を行うわけですが、私が使用しているLinuxマシンのディストリビューションはFedoraです。一応サイトはここで すかね。わざわざ説明する必要もないくらい有名だと思います。ずいぶんと以前にインストールしたものをyum upgradeしつづけて現在Fedora 10を使用しています。なにかちょっと試してみたくなったときでもたいてい既にインストールされているか、yum installで簡単にインストールできて非常に便利です。

ちなみにさくらインターネットのサーバはFreeBSDで動いていますが、私はBSDはあまり使用した経験がないのでLinuxのほうが好みです。

ダッシュボード

WordPressの管理画面はダッシュボードという名前のようですね。ダッシュボードという言葉を車以外で聞くのは初めてなのでなかなか慣れない感じですが、意味的にはそういう風に使えるんだなあと思いました。

それにしてもこのダッシュボードは非常によく出来てると思います。これがブラウザで表示されている画面だというのを忘れてしまうくらいですね。最近のWebアプリケーションではこのくらいの作りは常識なのでしょうか。

一通り眺めて設定をいじったりとかいろいろ試してみました。

外観というメニューで外観が変更できるようです。そのままですが。テーマを選択することで簡単に全体を変更できるようです。テーマのページからリン クされているオフィシャルサイトのテーマからgearをダウンロードして使ってみました。現在のテーマがそのgearですね。なかなかよく出来ていると思 います。

テーマのインストールも非常に簡単でwp-contents/themeというディレクトリにテーマのファイルを置くだけです。するとメニューからそのテーマが選べるようになります。

ウィジェットという機能もあり、サイドバーに配置するカレンダーやリンクなどを個別に設定できるようですが、このウィジェットを設定するとテーマで 最初から用意されているサイドバーは使用できないようです。これはしかたのないことかもしれませんが、ウィジェット機能はあまり使いそうにないですね。基 本はテーマでデザインを選択し、もの足りない部分は個別にカスタマイズするのことになるでしょうか。もっともテーマはよく出来ていますのでそれだけで十分 に満足できます。今使っているgearのテーマだとこのサイドバーに最近のコメントを追加したいとは多少思いますが。

論理的な構造で言うと、ブログのエントリ以外の内容を書くところをページと呼ぶようです。最初この部分が理解できませんでした。新規投稿と新規ペー ジの違いってなんだ?って感じでした。わかってみれば非常に妥当な仕組みです。プロフィールのような静的なコンテンツはページとして管理するということで すね。こういうブログエントリ以外の部分もあわせて管理できるという意味でCMSとも言えるのでしょう。ちょっとしたサイトならWordPressだけで サイト全体を作っても十分だなと思いました。そうです、ちょっとしたサイトとは例えばこのサイトのことです(笑)。

WordPressのインストール

ブログを始めた理由のひとつにWordPressを使ってみたかったというのもあります。ブログの話題でよくMTとかWPとか出てきますが、MTが Movable Typeのことだというのは以前からしっていましたが、WPがWordPressのことだというのを最近知ったのです。

調べてみるとWordPressというのはPHPとMySQLを使ったブログプラットフォームということがわかり、私自身最近PHPやMySQLに 興味があったのと、さくらインターネットのサーバを契約していてPHPとMySQLが使える環境があったのともあって、急激にWordPressを使って みたくなったわけです。

WordPressの日本語サイトはここです。インストールの手順のページはここになります。この手順を見てもわかりますが、WordPressのインストールは非常に簡単でした。また、さくらインターネットでのWordPressのインストール例としてこちらのサイトも参考にさせていただきました。

まず私の環境をまとめます。

  1. サーバはさくらインターネットのスタンダードプラン
  2. サイトのアドレスはhttp://www.euphe.net/eek/でパスはeekに設定
  3. さくらインターネットのデータベース設定済み

1についてですが、さくらインターネットは世間で広く使われている安価なレンタルサーバだと思います。スタンダードプランで月500円、年払いだと年5000円です。さらに安いライトプランもありますが、ライトプランだとPHPやMySQLが使えません。

2についてですが、さくらインターネットでは契約すると無料で使えるサブドメインを二つまで選ぶことが出来るので、そのひとつとしてeek.jpの サブドメインjun.eek.jpを使用しています。また、さくらインターネットではwwwディレクトリ以下にウェブのデータを配置するようになっていま して、そのサブディレクトリのeekをjun.eek.jpのルートディレクトリに設定しています。

3についてですが、設定するとは言ってもパスワードを決めるだけですが、設定をすることによって初めてデータベースサーバが割り当てられます。データベースサーバは自分のレンタルしているウェブサーバとは別のサーバというところに注意が必要かもしれません。

そして以下の手順でインストールしました。さくらインターネットのスタンダードプランではログインしてシェルで作業できるのが大変便利だと思います。

  1. $ wget http://ja.wordpress.org/wordpress-2.7-ja.tar.gz
  2. $ tar zxvf wordpress-2.7-ja.tar.gz
  3. $ mv wordpress/* www/eek/
  4. $ cd www/eek
  5. $ cp wp-config-sample.php wp-config.php
  6. wp-config.phpを編集してデータベースの設定を書き込む
  7. ブラウザでhttp://www.euphe.net/eek/wp-admin/install.phpにアクセス

手順を見ればだいたい内容がわかると思いますが、まず今回は現時点での最新版WordPress 2.7をインストールしました。ダウンロードしたファイルを解凍するとwordpressというディレクトリの中にファイルが展開されます。そのファイル をWordPressのサイトに使用するディレクトリに移動して設定ファイルを編集します。

ここが手順5のところですが、まずはサンプルファイルwp-config-sample.phpをwp-config.phpという名前にコピーし てエディタで編集します。注意書きによるとUTF-8のDOMなしが扱えるエディタを使用しなくてはいけないようです。私はemacsが好きなので emacsを使って編集しましたが特に問題がないようでした。さくらインターネットのサーバにはemacsは入っていませんが、emacsにはtramp という機能があり、ローカルのマシンのemacsから/ユーザ名@サーバ名:www/eek/wp-config.phpでファイルを開くとSSH経由で ファイルを編集することができます。

wp-config.phpの中で編集する必要がある部分は「データベース名」「ユーザ名」「パスワード」「ホスト名」の4ヶ所です。ホスト名のと ころには、ほとんどの場合変更する必要はありませんと書いてありますが、さくらインターネットではウェブサーバとデータベースサーバは別のサーバなので設 定が必要になります。これらの4つの情報はさくらインターネットのコントロールパネルのデータベースの設定のところに書いてあります。

そして最後にブラウザからインストールページにアクセスし、2,3の質問に答えてクリックすればインストール完了です。非常に簡単です。記事を投稿するよりもインストールのが簡単なくらいです。

ひとつだけわからないところがあって、さくらインターネットではPHPがCGIモードで動いているのですが、PHPがCGIモードで動いているとき には.phpのファイルのパーミッションを755などにしないといけないということをよく言われています。CGIということを考えればなんとなくその通り だと思いますが、実際今回の手順でパーミッションを設定してないことでもわかりますが、パーミッションが644のままでも正常に動作しています。このあた りは今後ちゃんと理解していきたい部分です。