TortoiseSVN

前のエントリのSubversion紹介記事にあるようにWindowsでもコマンドプロンプトからsvnを使うことが出来ますが、GUIのクライアントを使うとよりWindowsらしくて便利だと思います。

Windows上で動くフリーのSubversionクライアントにTortoiseSVNがあります。こちらに解説記事があります。ダウンロードページはこちらです。日本語のランゲージパックもあります。

インストールするとエクスプローラの右クリックのメニューからsubversionの操作が出来るようになります。非常に簡単で便利です。

メニューからチェックアウトを選択するとリポジトリの場所を入力するフォームが出ますが、ここでsvn+ssh://ユーザ名@ホスト名/リポジト リ/プロジェクトと入力するとsvn+sshでネットワーク経由でアクセスできます。例えば前のエントリで作成したLinuxマシンのプロジェクトを チェックアウトできます。

このとき再びsshのパスワードを頻繁に入力しなくてはいけない問題がありますが、先ほどの解説記事の3ページにsshの鍵を指定する方法の説明が あります。設定のネットワークの項目でsshクライアントを指定できますが、ここでTortoiseSVN付属のTortoisePlink.exeを指 定するのですが、オプションで鍵ファイルを指定することで鍵を使った認証を行うようになります。ここで指定する鍵はPuTTY形式の鍵ファイルです。

C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe -i 鍵ファイル

チェックアウトをしたとき動作ですが、svnコマンドではカレントディレクトリにプロジェクト名のディレクトリが作成されますが、TortoiseSVNではカレントディレクトリにチェックアウトされる点が異なります。

svn+ssh

前のエントリでローカルでsvnが使えるところまで来ました。

ひとつのリポジトリを複数のマシンから使えるほうが断然便利だと思うので、ネットワーク経由でsvnする方法を考えることになります。svnには svnプロトコルを使いネットワーク経由でアクセスする方法や、WebDAVを使ってネットワーク経由でアクセスする方法がありますが、個人で使用するに はsshを使ってsvnするsvn+sshが簡単で十分だと思います。

使い方は非常に簡単です。例えばローカルでチェックアウトするコマンドは次のような感じです。

$ svn co file://リポジトリのパス/プロジェクト名

これと同じことをsvn+sshで行うと次のような感じです。

$ svn co svn+ssh://ユーザ名@ホスト名/リポジトリのパス/プロジェクト名

サーバを起動している必要はありません。リポジトリのあるホストに対してsshでアクセスしてsvnが実行されます。

複数の開発者でリポジトリを使う場合には専用のアカウントが必要などの管理的な問題もありますが、自分のリポジトリを別のマシンからアクセスする場合にはなんの設定も必要なく簡単に使用できます。

ただ、svnの操作を実行するたびにsshのパスワードの入力を求められるのは若干面倒です。そこで鍵を使った認証を用いてパスワードなしでsshするように設定しておくと便利だと思われます。

PuTTY

以前のエントリでTera Termを使っているのでPuTTYには興味がないようなことを書きましたが、改めて多少興味がわいてきたのでインストールしてみました。

こちらの解説を参考にしました。PuTTYのオフィシャルサイトはこちらです。オフィシャルサイトのダウンロードページからインストーラーパッケージをダウンロード。それを実行してインストールは簡単に終わります。

このときPuTTYと一緒にインストールされるPuTTYgenというツールでPuTTY形式の鍵を生成できるのですが、LinuxのsshやTera Termで使われているOpenSSH形式の鍵をPuTTY形式に変換することもできるようです。

これを試してみたくてPuTTYに興味がわいたというしだいです。PuTTYgenのメニューのConversionを選ぶとファイル選択ダイアロ グが出ます。ここでTera Termで生成したDSA鍵の秘密鍵を選択します。そして下のほうにあるSave private keyボタンを押すとPuTTY形式で秘密鍵が保存されます。このときパスフレーズなしの鍵だと警告が出ますが、ここではそれは気にしない方針とします。

試しにこの変換した鍵を使ってPuTTYでログインしてみます。PuTTYのメニューも若干わかりにくいですが、やや下のほうのSSHという項目の Authという項目で鍵を指定できます。SessionのページでSaveボタンを押すと設定が保存されます。ログインのほうも問題なく成功しました。

PuTTY形式に鍵が変換できたということは、以前のエントリにも出てきたwinscpを使いたくなるわけです。というかむしろこちらが本題です。 winscpで鍵を使った認証をする場合にはPuTTY形式の鍵を使います。SessionのPrivate key fileというところで先ほど変換した鍵を指定します。こちらも問題なくログインできました。

subversion

これまで私はきちんとバージョン管理をしてプログラムを書いたことがほとんどありませんでしたが、やはりプログラマのたしなみとしてバージョン管理 くらいしたほうがいいと思います。特に年をとってくると記憶力も悪くなるので余計にバージョン管理がありがたくなるのではないでしょうか。

世間で広く使われているバージョン管理ソフトにSubversionというのがあります。svnというコマンドです。フリーソフトでLinuxなど にはデフォルトでインストールされていると思われます。もしインストールされていなくても、Fedoraの場合ですとyum install svnでインストールできます。

まず普通に使う方法ですが、svnadmin create hogeでリポジトリを作成し、svn importとかsvn commitとかすると簡単に使用できます。本当に簡単だと思います。Subversionの基礎演習というページが非常に参考になると思います。コマンド実行例はWindowsのコマンドプロンプトですが、Linuxでも大差はありません。

でもこれだとひとつのマシンでしか使えないのであまりうれしくないと思います。そこでネットワーク経由で使う方法ですが、それはこれから調べます。

mysqldump

WordPressでMySQLのデータベースを使っているので、データベースのデータのバックアップもしたいと思います。

基本的なバックアップツールとしてmysqldumpというのがあるようです。これはさくらインターネットのサーバに入ってます。

以下のように実行します。ホスト名などの情報はコントロールパネルで確認できます。

$ mysqldump –host=ホスト名 –user=ユーザ名 –password=パスワード データベース名 > dump

これでdumpというファイルにデータがダンプされます。ダンプされたデータはSQLになっていて、これを実行するとデータベースが復元できるようです。復元は試していませんが。

テキストデータなのでgzipで圧縮して保存するのがいいようです。

$ mysqldump –host=ホスト名 –user=ユーザ名 –password=パスワード データベース名 | gzip > dump

WinSCP

以前のエントリでLinuxのマシンからscpでさくらインターネットのサーバにファイルを転送する話とかを書きましたか、LinuxだけでなくWindowsのマシンからもscpしたいという要求が当然のようにわきあがってきます。

Windows用のscpクライアントと言えばWinSCPがあります。おそらくこれが一番有名なのではないでしょうか。しかもフリーです。スクリーンショットはこんな感じです。エクスプローラ的な操作でWindowsに親しんでる人にぴったりだと思います。

そうなると今度は、以前のエントリで作成したDSA鍵をWinSCPでも使いたくなります。しかし、WinSCPではPuTTY形式の鍵しか使えないようです。私はPuTTYは使っていませんので、ここではこの件はこれ以上追求しないことにします。

ちなみにTera Termにもscp機能はあります。メニューのファイル→SSH SCPです。操作性はやや難でしょうか。しかし、ひとつふたつのファイルを転送するには十分使える機能だと思います。

zshのグローバルエイリアス

Unix環境で作業するときには使い慣れたシェルを使うのが一番ですが、なんといっても機能的な意味でおすすめなのはzshだと思います。

そのおすすめな機能のひとつがグローバルエイリアス。普通のエイリアスはコマンドの部分しか有効ではありませんが、グローバルエイリアスはコマンドラインの途中でも使用できます。

よくある使い方は以下のような設定です。

alias -g L=’| less’

-gというのがグローバルエイリアスを使いますというオプションです。例えば以下のように使うと簡単にlessできます。

# dmesg L

scpのときに毎回ホスト名をしていするのが面倒なときに以下の設定が使えるのではないでしょうか。

alias -g SKR:=ユーザ名@ホスト名.sakura.ne.jp:

これを使うとこんな感じでscpできると思います。

$ scp hoge SKR:

あまりやりすぎるとわけがわからなくなってしまいますが似たような入力を何度も繰り返すことがあるときには便利だと思います。

WP-SLIMSTAT-EX V2.0をインストール

WordPressにはデフォルトではアクセス解析機能がついていないようです。特に何が解析したいというわけではありませんが、本日のアクセス数とかくらいは見れるとうれしいというわけで、特に機能にこだわりはありません。

検索してみるとWP-SLIMSTAT-EXというプラグインが見つかったので試しにこれをインストールしてみました。本家のサイトはこちらです。韓国のかたのようです。こちらのサイトで日本語での解説と日本語化のためのファイルが公開されています。これを参考にしてインストールしました。

インストールは非常に簡単ですがプラグイン自体が初めてなので若干戸惑いました。

  1. ファイルをダウンロード
  2. 解凍したファイルをwp-contents/plugin/ディレクトリに置く
  3. 管理画面のプラグイン→インストール済みからプラグインを選択
  4. で?このあとどうするの?

どうやらこの時点で使用可能なようです。このWP-SLIMSTAT-EXプラグインの場合、設定のメニューにSlimStatという項目が追加さ れていて設定が行えます。またアクセス解析の結果はダッシュボードのメニューに追加されたSlimStatの項目を選ぶことで見ることが出来ます。

どうやらダッシュボードというのはこの管理画面全体を指す言葉ではないみたいですね。前に書いたエントリは勘違いだったようです。なんとなくニュアンスが理解できた気がします。

まだアクセスがほとんどないので解析結果がどうとかはいえませんが、とりあえず見た感じでは十分な機能があるように思います。

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一般の注意事項ですが、設定を変更してもメニューの[設定]→[設定の保存]を選ばないと変更が保存されないので注意が必要です。