2011年8月28日日曜日

QNAPをrsyncでバックアップ (手動)

QNAPのNAS間ではrsyncを使って自動的に同期を取ることができるんだけど、しばらく前からtimeoutで失敗するようになってしまった。

バックアップ先のTS-410がARMSで遅いからかなあとか思っていたけど、単にQNAPのカーネル3.5以前のrsyncが3.0.6で腐っているかららしい。

FWを挙げずに、手作業でrsync動かすことでバックアップできたのでその手順を書いとく。

  1. 設定を済ます
  2. 標準のrsyncdを停止する
  3. バックアップ先で“/opt/bin/rsync --daemon --config=/etc/rsyncd.conf”
  4. バックアップ元で“/opt/bin/rsync -a --sparse --delete --timeout=600 --port=873 /share/MD0_DATA/Public/ admin@[192.168.0.2]::Public --progress -v”
以下は上記の詳細な手順。

  1. 設定を済ます
    1. まずは普通の手順でバックアップを実行できるよう設定を済ませておく (webから)
    2. Optware IPKGをバックアップ元と先の両方にインストールする (webからApplication Servers→QPKG Plugins)
    3. インストールしたIPKGを両方で有効にする (webから)
    4. sshでログインする (cygwinやputtyから)
    5. “qpkg install rsync”と入力してrsyncを両方にインストールする (sshから)
  2. 動かしてるrsyncdを両方で停止する (webからApplication Servers→Backup Server)
  3. バックアップ先で“/opt/bin/rsync --daemon --config=/etc/rsyncd.conf”と入力する (sshから)
  4. バックアップ元でコマンド実行
    1. バックアップ元で“qpkg install procs”と入力してpsをインストールする (sshから)
    2. バックアップ元でremote replicationを開始する (webから)
    3. バックアップ元で“/opt/bin/ps auxw | grep rsync”と入力してコマンドラインを調べる (sshから)
    4. バックアップ元でremote replicationを停止する (webから)
    5. バックアップ元で、3で調べたコマンドラインを使って、最後に“--progress -v”を付けて、“--sever-mode=1”と“--schedule=***”と“--password=***”の引数は消して、“/opt/bin/rsync -a --sparse --delete --exclude=:2eDS_Store --exclude=.AppleDB/ --exclude=.AppleDesktop/ --exclude=.AppleDouble/ --timeout=600 --port=873 /share/MD0_DATA/Public/ admin@[192.168.0.2]::Public --progress -v”などとして起動する。 (sshから)
  5. 必要なら2で停止したrsyncdを再開する (webから)
これでOKだった。

2011年6月12日日曜日

git とは

gitというのは、分散ソース管理システムの一種。

中身は何かと言うと、ファイルシステムと考えると分かりやすい。内部には以下の情報を持つ。

  • ファイルの中身を、バージョン間の差はとらず、個別のデータとして詰め込んだデータベース
  • あるバージョンのスナップショット情報(あるバージョンで、あるディレクトリに存在したファイルは、データベース中のどのデータかという情報)
  • バージョンの流れ、コミット時のコメント、ブランチなどの管理情報

ユーザがgitを使うと、gitコマンドは内部のデータベースと、展開中のファイルを使って、差分はこれだよとか、変更したファイル一覧はこれですとか、表示してくれる。

ファイルが個別に保存されているので、古いバージョンを取り出すときにはその間でdiffを取るだけ。従来問題だった、差分を再帰的に当てた上でdiffを取るといった面倒な処理は必要ないので、非常に高速にバージョン間の比較が行える。

また、分散ソース管理では、gitそのものが単純な仕組みのため、基本的に以下の情報をやりとりするだけで実現できる。

  • データベース間で追加されたファイル
  • 追加されたスナップショット情報
  • 追加された管理情報
扱うデータが、他のデータに依存しないため、非常に単純だ。

gitは、こういう単純な仕組みの上に、強力なmergeエンジンや、rebase処理を実装することで、スマートで力強い、かつ非常に高速なバージョン管理システムになっている。俺は、gitで、初めてLinusさんを尊敬した。

2011年5月14日土曜日

HDD

HDDも買ってきた。
4台 ヾ(*´∀`*)ノ キャッキャッ♪



move

PS3用のmove買ってきた。しめて8,240円


2011年5月7日土曜日

アンドロイド用のbloggerからテスト

今朝の朝飯。

筍ご飯は椎茸とアゲを入れて味わいプラス!


2010年11月25日木曜日

アプリのテスト方法

Gallery Invokerの時はUSBを繋いでデバッグしようとすると、Galleryが起動して、SDカードがないとか文句言ってうまくテストできませんでした。

そこで使ってた方法は、LAN接続してSAMBA経由でapkをインストールする方法。


ここで使ってるアプリはESファイルエクスプローラー。便利でずっとこれ使ってる。これから、目的のディレクトリ行って、apkファイルをクリックすると、


てな感じでインストールできます。便利。

2010年11月23日火曜日

Androidでの開発

4月にXperia買ってから、ずっとアプリ開発したかったんだけど、特に目的がなかったのでそのまま放置してました。

Xperia 2.1にしてから、Galleryが呼べなくなって、特にカメラアプリで2~3枚写真取った後に、取った写真を見比べたりすることができなくてムカついてたので、今回、とうとうアプリ作りました。

といっても、内部に存在するcom.cooliris.media.Galleryを呼び出すだけなんですけどね。

もともとLauncherProやADW.Launcherを使えば、そういう呼び出すだけのショートカットなら自由に作れるんだけど、これだとintentが使えない。例えば、PicPaintで写真を3枚撮って、その中の写りの良い奴だけを選んでtwitterに投げるとかしたい時に、毎回ショートカットから起動して、カメラフォルダーまで行って、最新のを見て…と色々操作が煩雑で辛かった。

なので今回ついに呼び出すだけのアプリを作って、intentも受け止めてGalleryにリダイレクトするようなのを作りました。結果、PicPaintで写真を3枚撮って、即intentで最後の写真を表示するよう呼び出して、後はGallery側でその前後の写真もスライドさせて眺めることができるというわけです。

自画自賛だけど、便利♪w


幕裏: 今朝、Gallery Shortcutってのが公開されてたのに気づいた。これがintentに対応してたら、今日もアプリ開発せずに飲んで終わってたと思う。でも、対応してなくて、そっからなんかムラムラとintent対応版が欲しくなって、昼前にeclipseインストールから始めて、一気に開発してmarketで公開した。反省はしてる。後悔はしていない。