2010年6月14日月曜日

device-mapper-multipathのconf

[blacklist]
multipathの検索対象としないデバイスを設定する。
設定時はdevの名前のみで除外設定を行う。
対象の記述は正規表現によって解決することができる。

[defaults]
use_frendly_names(noにするとデバイス名がWWIDになる、yesだとmpath+連番の設定に)
[devices]
devicesに設定対象のdeviceを追加する。
dmesgにより表示される認識時に発生した。
vendorはvendorに設定
modelはproductに設定
path_grouping_policyにはグループする方式。(通常はmultibusだが、以下の場合に例外的に設定を変更)
multibus(全ての経路が常にアクティブ)
failover(failover型の経路設計)
group_by_prio(prioを/sbin/mpath_prio_xxxで参照できる。prio_calloutを指定する。)
prio_callout(prioを参照するためのコマンドを指定する)
getuid_callout(scsi_idをとるためのコマンドを指定する)
path_checker(接続状態をチェックする方式。基本的にはreadsector0,rdacだとrdac等)
rr_min_io(接続をラウンドロビンする際のスイッチングの時間)
no_path_retry(接続に失敗した際の再試行回数)
polling_interval(接続に失敗した際の再試行待ち時間)


状態の再読み込みは
# multipath -r
状態の確認は
# multipath -ll

ちなみに動作中なら
[active][ready]
待機状態なら
[active][ghost]
と表示されるようだ

dateコマンドの小ネタ

dateコマンドで先の日付を出力する。

${number}日後で表示

date --date " -${number} days ago "

ちなみに${number}日前なら


date --date " ${number} days ago "



知ってる人結構居るのかな。

それとも、もっといい方法あるのかな?

あるディレクトリから絶対パスとしてディレクトリリストの作成

あるディレクトリからそれ以下のディレクトリを相対パスでディレクトリリストを作成する際のコマンド

find ${dir_name}/ -type d |sed s#^${dir_name}/##g |grep -v "^$" |grep "/"
sedの分割記号を一般的な/ではなく#を使うことで、複雑なコマンドを利用することなく、
ディレクトリの情報を修正している。

ちなみに隠しディレクトリを削除する場合は以下のように最初が.と/.を削除すればOK

find ${dir_name}/ -type d |sed s#^${dir_name}/##g |grep -v "^\." |grep -v "\/\."|grep -v "^$"

2010年6月9日水曜日

digを使ってIPからホスト名を取り出したりホスト名からIPを取り出したり

IPアドレスからホスト名のみを取り出す


addres_data=( $(dig -x ${ip_address} ptr |grep -v ";" |grep PTR)) ; echo ${addres_data[4]} | awk -F. '{ print $1 }'


IPアドレスからFQDNを取り出す

addres_data=( $(dig -x ${ip_address} ptr |grep -v ";" |grep PTR)) ; echo ${addres_data[4]} 


FQDNからIPアドレスを取り出す

host_data=( $(dig ${host_name} a |grep -v ";" |grep A)) ; echo ${host_data[4]}


ちなみに、結果を変数に代入する場合は。

hoge=$( addres_data=( $(dig -x ${ip_address} ptr |grep -v ";" |grep PTR)) ; echo ${addres_data[4]} | awk -F. '{ print $1 }' )