アーカイブ

  • iSCSI Enterprise Target

    これ (iSCSI Target – Solaris Express) をみたので Linux (Fedora Core 6) でやってみました。

    設定にあたってこの辺を参考にしました。3つめのページには Microsoft iSCSI Software Initiator についても書かれています。

    iSCSI enterprise target project Wiki
    A Quick Guide to iSCSI on Linux
    Going Enterprise – setup your FC4 iSCSI target in 5 minutes

    準備
    利用するにあたって以下のものが必要です。

    kernel-development パッケージ
    kernel コンフィグの “Cryptographic options” の “Cryptographic API” が有効になっていること
    OpenSSL ライブラリ

    ソースを checkout します。

    # mkdir /usr/local/src/iscsitarget
    # cd /usr/local/src/iscsitarget
    # svn co svn://svn.berlios.de/iscsitarget/trunk [...]

    2008年 2月 7日 | Filed under Linux
  • DRBD+Heartbeat で NFS Server をクラスタ化してみる

    今回は DRBD + Heartbeat で NFS Server を HA クラスタ 構成にしてみます。
    結論としては、F/O 時にイマイチうまくできなかったのですが、過程も大事ということでメモ。

    テストにあたって Setup of high availability NFS servers を参考にしました。

    DRBD のインストールや設定については DRBD on CentOS 5 の記事のような感じです。
    Heartbeat との組み合わせについては MySQL DRBD Heartbear HA の記事のように設定しています。
    OS 環境は同じく VMWare Server 上の CentOS 5 を使用します。

    環境

    OS
    ホスト名
    実IPアドレス
    仮想IPアドレス
    DRBDデバイス名
    NFS マウントポイント

    CentOS 5
    toire
    192.168.159.128
    192.168.159.130
    /dev/drbd0
    /data

    CentOS 5
    ohuro
    192.168.159.129
    192.168.159.130
    /dev/drbd0
    /data

    NFS Server の準備

    NFS がインストールされていなかったので、yum でインストールしました。

    # yum -y install nfs-utils

    プライマリの設定
    NFS 共有のディレクトリを作成します。/data としました。

    toire# mkdir /data
    toire# mount -t [...]

    2008年 2月 6日 | Filed under Linux
  • awk で GET データを受け取る

    awk で GET データを受け取ることはあまり無いと思うが、ちょっとやってみたのでメモ。

    GET かどうかを判定して、”&” でデータを区切った後に、入力データだけを取り出す。
    その後はデコードしたり、文字チェックしたりすればいいですかね。

    method=ENVIRON["REQUEST_METHOD"];
    if(ENVIRON["QUERY_STRING"]){
    if(method==”GET”){
    str=ENVIRON["QUERY_STRING"];
    split(str, a, “&”);
    # field parse
    field1=substr(a[1], index(str, “=”) + 1);
    field2=substr(a[2], index(str, “=”) + 1);
    # decode したりあれこれする
    ・・・
    ・・・
    }
    }

    2008年 2月 1日 | Filed under Linux
  • sed で携帯の IP アドレスリストを作る

    sed だけでほとんどやっつけてみたいということで。
    コマンドラインから無理やり携帯の IP アドレスリストを取得してみた。
    各社のウェブサイトに curl でアクセスして HTML をいじるので、リニューアルされたら即アウト。
    「今のところ取れる」というだけの話。ナマモノのようだ。

    DoCoMo
    リストになっているところから IP アドレスっぽいのを抜き出した。

    curl $DOCOMO_URL | sed -n ‘/^.*<li>\(\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}\/[0-9]\{1,3\}\)<\/li>.*$/{s//\1/;p}’ > docomo.lst

    ezweb
    IP アドレスとサブネットマスクで 2 行で書かれていたので、後で N コマンドでくっつけた。
    パイプで渡しているのでイマイチかもしれない。

    curl $EZWEB_URL | sed -n ‘/^.*<div.*>\(\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}\)<\/div>.*/,/^.*<div.*>\(\/[0-9]*\)<\/div>.*/{s//\1/;p}’ | sed ‘/^[0-9].*$/N;s/\n//’ > ezweb.lst

    SoftBank
    テーブルの中に入ってたので抜き出した。

    curl $SOFTBANK_URL | sed -n ‘/^.*”>\(\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}\)\(\/[0-9]*\).*/{s//\1\3/;p}’ > softbank.lst

    WILLCOM
    改行コードを変換する sed を一つ入れた。

    curl $WILLCOM_URL | sed ’s/\r/\n/g’ | sed -n ‘/^<td.*”>\(\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}\/[0-9]*\).*/{s//\1/;p}’ > willcom.lst

    .htaccess を作る
    awk と組み合わせて、携帯から以外のアクセスを拒否する [...]

    2008年 1月 22日 | Filed under Linux
  • awk を書いてみる

    awk というと、列を取り出すことくらいにしか使っていなかったので、他のことにも使えるように練習をしてみる。
    特に何かに使うわけではないけど、練習がてら /var/log/secure ログファイルの中の、ssh の認証で 3 回以上失敗した IP アドレスと失敗回数を awk で拾ってみた。

    sed -n ‘/Failed/s/.* sshd.*Failed password for.* \([0-9.]*\) port .*/\1/p’ /var/log/secure | awk ‘NR==1{oip=$1;num=1;next}{nip=$1}oip~nip{++num;next}oip!~nip{if(num>=3){print num,oip}oip=nip;num=1;next}’

    練習用なので自分のために解説をすると…
    まず sed で Failed した IP アドレスだけを抜く(全部 awk でできるかもしれないけど sed が楽)。

    sed -n ‘/Failed/s/.* sshd.*Failed password for.* \([0-9.]*\) port .*/\1/p’ /var/log/secure

    それから awk に渡す。
    まず一行目の IP をとって比較用の変数に入れてカウントして、次の行に処理を移行する。

    awk ‘NR==1{oip=$1;num=1;next}

    次の行の IP をとって別の変数に入れて、

    {nip=$1}

    前の行の IP と現在の行の IP を比べて同じならカウントして次の行に評価を移行。

    oip~nip{++num;next}

    違う IP [...]

    2008年 1月 14日 | Filed under Linux
カテゴリー ‘Linux’ のアーカイブ