年末のデータバックアップ

いつの間にか 12月ということで、部屋の掃除もせずにデータのお掃除を(笑)。

ちょっと放っておくと HDD はなんだかよく分からないファイルであふれるものですが、こちらの整理とバックアップを少々。 今回はバックアップ用に Dropbox を使ってみました。

ぼくは普段使いの PC についてはほとんどデータを入れていなくて、いつ壊しても良いようになっています。 というか、OS 入れ替えをよくやる、というか入れ替えが好きなのでその準備が常にされているというのが真相です(笑)

というわけでそれ用に別にローカルサーバがたっていて、以下のデータが保管されています。

  • 通常ファイル用 samba
  • IMAP でつなげる Maildir
  • ソースコードをコミットする Subversion
  • そのプロジェクトの資料とかを管理する用に Redmine

ちゃんとまじめに上記に登録しておけば使っている PC はいつでもフォーマットできる状態という感じです。 メールとかはサーバ側でとっているのでそっとしておけばいいですが、ソースの Subversion 登録を最近サボっていたのでまずはここから。

サボライズ。(←懐かしい)

登録後のリポジトリをお見せしたいところですが、あぶない水着もあるのでちょっと控えておきましょう。 🙂

あとデータと言えば、ここコアサバ。 ブログのデータ。 こいつは rsync で持ってきています。

一応ローカルサーバは RAID1 になっていますが、バックアップという意味の断面はありませんのでどうしようか思案して、Dropbox に転送してみることにしました。

ワークステーションの PC に Dropbox を入れて、監視ディレクトリに各サーバからバックアップデータを rsync するシェルを作成。

[tegaki]とりゃ![/tegaki]

oosouji01

めでたく世界のどこかにバックアップされました。 これで札幌に何かあっても安心です(笑)

ローカルサーバ の Subversion、Redmine Postgres、Redmine File、コアサバの MySQL、アップロードファイルが対象になっています。

Dropbox は LAN 内にクライアントをみつけると、そちらに LAN Sync するのでさらに複数の HDD に複製がつくられます。 何か Dropbox 本来の使い方と違う気もしますが、良いことにしましょう。 🙂

いまはカレントしかやっていないですが、履歴をもたせてもいいかもですね。 バックアップタイミングはシェルを手動で起動した時点ということになります。 簡単な運用でバックアップとれるので気に入っています。

さて履歴といえば(全然バックアップと関係ないですが)、なにかプログラム書いたときに Redmine の Wiki にメモをちょっととっていたりするのですが、これがなかなか役に立ちます。 何かつくっても数ヶ月もすると忘れるので。。 心のバックアップ。。

oosouji02

というわけで、今後も活躍してもらおうと Redmine のバージョンアップも実施。 1系の正式版 1.0.1 を入れていましたが、先月末で 1.0.4 まで上がっているようです。

oosouji03

以下、アップデートメモ。 JRuby 化して Tomcat で動かしています。

cd /opt
# 新しいバージョンの tar.gz 落として展開
sudo wget http://rubyforge.org/frs/download.php/73457/redmine-1.0.4.tar.gz
sudo tar zxvf redmine-1.0.4.tar.gz
rm *.tar.gz
cd redmine-1.0.4
# 前のバージョンの config をコピー
sudo cp ../redmine-1.0.1/config/database.yml ./config/
# 秘密鍵作成(config/initializers/session_store.rb)
sudo jruby -S rake generate_session_store
# DB マイグレーション
sudo jruby -S rake db:migrate RAILS_ENV="production" 
# warble の config 作成
sudo jruby -S warble config
# config を redmine 用に修正(一番したに追加)
sudo vi config/warble.rb 
config.dirs = %w(app config lib log vendor tmp lang)
config.gems << "activerecord-jdbcpostgresql-adapter" 
config.gem_dependencies = true
config.webxml.rails.env = 'production'
config.gems["rack"] = "1.0.1" 
# war ファイル作成
sudo jruby -S warble
# tomcat 停止
sudo /etc/init.d/tomcat6 stop
# 今のバージョンの war を一応退避
sudo cp -p /home/apache/redmine/redmine.war /home/apache/redmine/redmine-1.0.1.war
# war を新バージョンに差し替え
sudo cp -p /opt/redmine-1.0.4/redmine-1.0.4.war /home/apache/redmine/redmine.war
# tomcat からアプリ削除
sudo rm -Rf /opt/tomcat6/webapps/redmine/
# tomcat 起動(自動デプロイ)
sudo /etc/init.d/tomcat6 start
# 静的ファイル格納ディレクトリにシンボリックリンク貼り直す
sudo ln -s /home/apache/redmine/files/ /opt/tomcat6/webapps/redmine/WEB-INF/files

でした。

Redmine、Subversion やレンサバ rsync についてもし興味があれば以下をみてみてください。 🙂

hiromasa.another :o)» Blog Archive » Redmine を Tomcat6 にデプロイ

なにか利点があるかって話ですが、1パッケージにして JavaVM で動作させておけば、OS にのっている Ruby 実行環境に依存しなくて済むのがいいところ。 gem のバージョン依存とか考えなくていいし、Servlet の実行環境さえあればどこにでも乗せられるのでなかなか便利かもしれません。

hiromasa.another :o)» Blog Archive » Subversion サーバ を CentOS 5.5 で。

Subversion サーバは昔も家にたてていたのですが、ローカルサーバを Atom 機にしてからまだインストールしていなかったので CentOS 5.5 上に改めて構築してみました。

hiromasa.another :o)» Blog Archive » WordPress のファイルバックアップ

WordPress のブログデータの構成要素は、MySQL のデータと画像などのサイトにアップロードファイルとなりますが、ここは後者のファイルのバックアップお話。 MySQL のバックアップについては以前かいた以下の記事が参考になるかもしれません。

Aptana Studio と DB 開発統合

Aptana Studio の Subversion 統合に続きまして、今度は DB 開発系を Aptana に統合してみます。 諸般の事情でスクリーンショットは Eclipse for PHP Developer になっていますが、Aptana でも同様です。 🙂

ここでは、DB Viewer プラグインを設定しています。 これで SQL 開発やデータの閲覧を Eclipse 上から統一操作でできるようになります。

Download – DBViewer Plugin for Eclipse 開発プロジェクト – SourceForge.JP

DBViewer Plugin is an Eclipse Plugin as a Database Front end .
It connects with various Databases by way of JDBC Driver,
The function to assume not DB manager (DBA) but developer (Developer) is offered.

インストールは簡単で上記サイトから、 zigen.plugin.db_1.2.2.v20101009.jar など最新版の .jar を取得して、Aptana もしくは PDT の plugins ディレクトリディレクトリに格納して、Eclipse を再起動してください。

また、DB に接続するときに各データベース用の JDBC ドライバが必要になります。 ここでは、WordPress をサンプルにしていますので MySQL 用ということで下記からダウンロードします。

MySQL :: Download Connector/J

MySQL Connector/J is the official JDBC driver for MySQL.

.zip ファイルの中に .jar がありますので、それを分かりやすい位置に配置しておきます。 その他のファイルはここでは不要です。

準備ができたら Eclipse 起動で、DB Viewer のパースペクティブが作成されていますので、前回の SVN のパースペクティブ選択と同じように、右上の Other から選択します。

aptana21

でもって、接続先データベースを新規追加します。(ローカル環境で MySQL が立ち上がっているものとします。)

まずは JDBC ドライバの登録から。 先ほどの Connector/J の .jar をファイルの追加から指定して、適当なデータベース定義名を入力して Finish。

aptana22

次にデータベースの接続先を設定します。 ローカル環境ならホスト 127.0.0.1 でデータベース名を接続文字列で、またユーザ名とパスワードを指定します。

テスト接続でつながったらおめでとうございます。 🙂

aptana23

スキーマ選択します。 見たいデータベースだけ設定しておくと便利でしょう。

aptana24

これで設定完了です。

まずは DB ツリービューからぴこぴこすれば内容の閲覧ができることが分かります。 また表示からデータのパッチも可能です。

SQL 開発を行う場合は、SQL 実行ビューで SQL の記述が可能です。 テーブル名などのオートコンプリートや SQL 整形がききますので非常に便利です。

aptana25

ツリーの方からカラム名をとってきて SELECT つくってくれたりもできますね。 🙂

aptana26

プラグインをつくるときなど DB 直接アクセスしたりすることもありますが、そんなときのために環境を統合しておくと便利かと思います。 また最近ではカスタム投稿などの動作確認で (wp_)posts の内容がみたいこともありますのでそんな時にも。

WordPress を動かしながらテーブルを覗いていると、あ、カスタム系って post_type とか taxonomy に任意の文字列をいれれるようになったってことなのね、みたいな発見もあると思います。 🙂

Aptana Studio と Subversion 統合

Web 開発向けの統合環境に Aptana Studio がありますが、これに Subclipse を入れてバージョン管理を使うお話です。 Eclipse for PHP Developer でも同様にインストールできるはずです。 🙂

一応、Web サイトいじりのための Ubuntu (その2) の続きですが、今回は OS があまり関係ないのでタイトル変更。

前回。

Web サイトいじりのための Ubuntu (その2)

前回に引き続きまして、Web サイトいじりのための Ubuntu (その2)です。 WordPress 個人ブログなどをレンタルサーバに持っている方向けの、Ubuntu Tips。 前回は SSH でレンタルサーバに鍵認証で接続して、Nautilus と統合までしましたので、その次に進んでみます。

では張り切って行ってみましょう。

まずは Aptana Studio 3 のインストールから書いてみたいと思います。

実は Studio 3 はまだ beta なのですが、ベースの Eclipse が最新の Helios SR1 のようなのでこちらを選択しています。

Aptana Studio 3 Beta

The professional, open source development tool for the open web

Develop and test your entire web application using a single environment. With support for the latest browser technology specs such as HTML5, CSS3 and JavaScript; and Ruby, Rails, PHP & Python on the server side. We’ve got you covered!

ダウンロードに進んで Standalone 版の.zip を取得します。 オフィシャルでは Windows / Mac OS X / Linux に対応しているようです。 ここでは Linux 版をサンプルに。 他の OS でも同じだと思います。

Eclipse for PHP Developer にしたい方はこちらより。

まずは、適当な場所に .zip を展開。 ~/apps の下にいれてみました。

aptana02

実行ファイルをダブルクリックで起動します。 Linux の場合は AptanaStudio3 というファイルです。

aptana01

これだけでインストール完了です。

Aptana は Eclipse ベースですので、様々な Eclipse のプラグインが動作します。 ここから、Subversion にアクセスするために、Subclipse というプラグインをインストールしていきます。

Help –> Install New Software を選択します。

aptana03

Subclipse の配布アップデートサイトの URL を指定します。

URL 入力後エンターすると選択がでてきますので、Core SVNKit と Subclipse を選択します。 (Windows の方は SVNKit いらないですが、どうも経験的にネイティブ版はつながらないことがあるのでこっちのほうがいいかもです)

aptana04

で、次へ次へくらいで Aptana 再起動後インストール完了です。(途中、署名関係でワーニングがでます。)

起動したら SVN の設定をします。 Window –> Preference から SVN をたどります。 上のテキストボックスに SVN をいれるとフィルターできて便利です。

で、SVN インターフェースを SVNKit (Pure Java) にしてください。 これで Aptana からリポジトリに接続できるようになりました。

aptana04-02

さっそく WordPress のリポジトリに接続してみます。 右上のパースペクティブ選択ボタンから Other を選択します。

aptana05

Eclipse は画面に表示される部品のことをビューと呼び、そのセットのことをパースペクティブと呼びます。 ビューを使いやすいように配置しておいてパースペクティブに記憶させておく感じです。

Subclipse には Subversion アクセスに便利なビューを記憶したパースペクティブがデフォルトでありますのでそれを選択して画面を切り替えます。

aptana06

できたら、 SVN リポジトリビューにリポジトリを追加します。 右クリックから、新規 –> リポジトリ・ロケーションあたりを選択。

aptana07

でもって、リポジトリの URL を入力します。

WordPress の場合は上記になります。

aptana08

Finish 押下。 リポジトリの内容がでてきます。 🙂

リポジトリのビューで便利なのが、タグ通しの比較です。 たとえば、3.0.1 と 3.0.2 を選択して「ユニファイド Diff ファイルの生成」。

aptana09

このようにタグ通しを比較して、ファイルの diff もクリックから見ることができます。 何が変更になったのかなというときに役に立ちます。

aptana10

ちなみに、Aptana ではなく Eclipse for PHP Developer (2.2) をお使いの方は上記操作が Nullpointer Exception でおちてしまいます。 これは不具合で現在作成中の 2.2.1 では fix されているようです。

Bug 326227 – Cant doubleclick on file for comparing files in svn commit dialogue

Roy Ganor 2010-10-11 17:45:57 EDT

(In reply to comment #5)
> I have a similar problem on 64-bit Ubuntu running PDT
> 2.2.1.v20100826-1100-53184QAN4IJShLXONIZhXX4Na9Od
> 
> Will the fix posted above address all systems?

Please use this update site that includes a fix to this issue:
http://download.eclipse.org/tools/pdt/updates/2.2/milestones

とのことですので、上記アップデートサイトをしていして PDT をマイルストーンビルドにしてしまうといいかもしれません。(ぼくはしました)

では次に、リポジトリからファイルをチェックアウトしてみます。

落としたいタグなどを選択してチェックアウト。 遊びなら trunk (開発版)を落とした方がおもしろいかもですね。

aptana11

「新規プロジェクト~」を選択。

aptana12

PHP なので PHP プロジェクトにします。 PDT の方は PHP->PHPプロジェクトくらいにあります。

aptana13

ここが重要。 もしファイルをそのまま動かしたい場合は、チェックアウト場所を Apache の htdocs 配下にします。 これで、Aptana で修正しながらブラウザで確認できます。

aptana14

ぼくは、~/workspace/htdocs が Apache のドキュメントになっているのでそこを指定しています。 xampp を直で使っている場合は、 /opt/xampp/htdocs の下とかですね。 でもって、フィニッシュ。

チェックアウトが終わったらチェックアウトした場所に普通にファイルがありますので、ディレクトリのアクセス権限とかを指定して、Apache 経由でブラウザからアクセスすれば Hello, WordPress となることでしょう。 🙂

aptana15

チェックアウトしたプロジェクトは、右のエクスプローラの右クリックから「Team」配下の操作でいろいろできます。

コアを間違って修正したものを戻したり、プロジェクト全体のタグの向き先をかえたりできます。 また、trunk を落とした場合は日々の WordPress コアチームのコミットがおちてきます。 コミットコメントとかもみれますので、進化が見れて面白いです。

また、Eclipse Mylyn を使うと trac との連携も可能です。

hiromasa.another :o)» Blog Archive » WordPress と Eclipse と

さらに Eclipse には Mylyn という仕組みが備わっていて、ソースコード管理とタスクを結びつけることができます。 タスク、、というのはそう、WordPress Trac。

さて、今回は WordPress のリポジトリを直接指定していますが、自分でつくったリポジトリであるとコミット操作もできるようになりますので、版数管理がとても便利になります。 お客さんに納品した時点のものをタグきったり、差分をとったりですね。

ぼくはローカルサーバの CentOS にリポジトリをたてていますが、いきなりサーバたてるのは結構大変なので、まずはプライベートリポジトリをフリーで貸してくれる assembla とかで試してみるといいかもしれません。

ファイルの管理というのはなかなか神経をつかう上間違いやすいものですので、こういったバージョン管理の仕組みを使うと精神衛生上もよいですね。 よければお試しください。 🙂