Log.log(work)

いろんな作業メモ

VM上で立ち上げたローカルホストをホストから見る方法

環境
ホスト:Windows8 64bit
ゲスト:(VirtualBox) CentOS6.7, Ruby on Rails

やりたいこと:
ゲストOSのRails上でlocalhostを立ち上げ、
ホストOSのブラウザで確認する。

手順:
VirtualBoxにネットワーク設定を2つ用意しておく。
① ブリッジアダプター
 → ゲストOSがホストOSと同じネットワークを使用するので、ゲスト側が外と繋がるために必要。
② ホストオンリー アダプター
 → ホストとゲストの間で通信する(外部に出ない通信)。

もしホストオンリーアダプターが立ち上がらなかったら、
コントロールパネル→ネットワークでvirtualboxのネットワークのプロパティを開き、NISC6が無効化(チェックなし)だったらチェックを入れて有効化する。

次にゲストOSを立ち上げてIPアドレスを確認。

ifconfig

eth1のアドレスをメモる。
恐らくローカルとグローバルアドレスとホスト通信の3つあると思われるが、
192.168.x.xのアドレスを使用する。

次にiptablesの設定を行い、ゲストOSのポートを開ける。

sudo vi /etc/sysconfig/iptables

Railsのサーバ(Webrick)の場合、3000番ポートを使用するので、3000番を開ける。

-A INPUT -p tcp -m tcp --dport 3000 -j ACCEPT

変更したら更新内容を反映させる。

iptables restart

次にwebrickを立ち上げる。
※事前にアプリがあると仮定

rails s -b 0.0.0.0

これでゲスト側はオッケー。

次にホストのブラウザを立ち上げ、最初に調べたIPアドレス:ポートを指定する。

確認できたらオッケー。


番外編:
FTPクライアントも入れたいという場合には、ここまでくれば設定はすぐできる。
たとえば、WinSCPの場合、設定のホスト名にゲスト側のIPアドレス、SFTPにしてゲストのユーザーでログインすればオッケー。

CentOS6.7のnautilus が使いにくくてつらい

クリックする度に新しく窓がopenされるってどういうこと?

と非常に使い辛いのでなんとかならんかなぁと調べてみたら
設定エディタツールをインストールして設定を旧版にすればいいらしい。

rootで gconf-editor をインストール

# yum install gconf-editor

終わったら、ディスクトップの「アプリケーション」→「システムツール」→「設定エディタ」を開く。
「apps」のところにあるnautilus→preferencesを選択し、
一番上のチェックボックスにチェック

LINQメモ(左外部結合とNVL的なのとWHERE句)

左外部結合

DefaultIfEmptyメソッドを使う

var q = from item1 in Tbl_FOO.Where(p => a.CD_FOO == param)

        join item2 in Tbl_Hoge
        on a.CD_AAA
        equals item2.CD_AAA into a
        from item2 in a.DefaultIfEmpty()

NVL的な

??演算子で変換する

 select new LIST_AA
 {
     NAME_AAA = item2.NAME_AA ?? "ナナシ"
 };

WHERE句を足したいとき

select aaa from hoge left outer join foo on hoge.cd=foo.cd where foo.CD_NO=1

LINQで表現すると

var q = from hoge in h
        join f in Foo.Where(x => x.CD_NO == 1)
        on new { cd  }
        equals new { cd } into Z
        from f in Z.DefaultIfEmpty()
        select 
        {
           aaa 
        };

コマンド苦手なので

めもっとく

聞き違いで

コピーしてバックアップ取ろうとしたらオプション間違えたなう。

cp -sp aaa.txt bbb.txt

ほんとうは-fpにしたかったんだぜ…。

  • sオプションはシンボリックリングを作るので


ls -l すると

bbb.txt -> aaa.txt

となってパニックw
いやー、本番のファイルがおかしなことに!

とすぐに相談したら今しがた作ったファイルを一回削除すればいいということなので、

rm bbb.txt

からの

cp -fp aaa.txt{,.bak}
ls -l
aaa.txt.bak

で無事なんとかなった。

windowsでポートが使われててローカルサーバが立ち上がらなくなったとき

netstatを使う

> netstat -aon

一覧がでる

ポート番号指定もOK

> netstat -aon | find ポート番号

 TCP     127.0.0.1:ポート番号    0.0.0.0    LISTENING   番号

LISTENINGと出てたら倒しに行こう。

killするときはtaskkill

> taskkill /pid 上の番号

例)

> taskkill /pid  9016

成功: PID 9016 のプロセスに強制終了のシグナルを送信しました。

と言われたらOK