2010年12月20日月曜日

HTC ariaで色々

wifiテザリングで
biblioのwifi-winは接続できた
kindle3は接続できた

bluetoothで
xtbt01動かない
RBK-2000BTJ動かない

BTじゃなくてもいいから外部キーボード使える方法ないかな
SSHの機能を生かせない

2010年8月3日火曜日

railsの多言語化対応

他のサイトからの拡散と個人的メモです。

確認はrailsのバージョンが2.3.8
gettextを使った日本語対応出来ないっぽい

以下を利用

gem sources -a http://gems.github.com

gem install amatsuda-i18n_generators

細かい使い方は…

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 }' )

2010年3月30日火曜日

一定時間ごとに同じコマンドを実行

1画面での表示を行う場合は
watch $COMMAND
を利用する


uptimeなどのように一行での表示の場合には以下のようにする。


while : ; do  $COMMAND ; sleep $INTERVAL ; done

e.g.)

while : ; do  uptime ; sleep 2 ; done



2010年3月11日木曜日

リモートXを利用した際の日本語の利用

VNCでの日本語の利用でもそうだけど
scimがインストールされている環境だと

以下のコマンドの実行でローカルでログインしたように動作する。

export GTK_IM_MODULE=scim
export QT_IM_MODULE=scim
export XMODIFIERS="@im=SCIM"

因みに、bashrcに記述しておけば、
毎回実行する必要は無い。

FIBERCHANNELのWWNを調べる

cat /sys/class/fc_host/host*/port_name

これで確認

2010年2月25日木曜日

複雑な変数を使った変数の利用法

変数を使った変数に配列を代入する。
eval "data_${list}=(\${test_array2[@]})"

変数を使った変数のリストからデータを出力するfor文
for list_2 in $(eval "echo \${data_${list}[@]}")
do
echo ${list_2}
done

以下がそれらを使った。テストプログラム


#!/bin?sh

test_array1=(test1 test2 test3)
test_array2=(test4 test5 test6)

for list in ${test_array1[@]}
do
eval "data_${list}=(\${test_array2[@]})"
done

for list in ${test_array1[@]}
do
for list_2 in $(eval "echo \${data_${list}[@]}")
do
echo ${list_2}
done
done

exit 0

2010年2月12日金曜日

一気にカーネルコンパイル

こんな感じの一行で。

make ; make install ; make modules ; make modules_install ; depmod -a

そっからmkinitrdして

/sbin/mkinitrd initrd-versionnumber.img versionnummber

grubのmenu.lst書き換えれば動作

mrtgでV1以外のバージョンでデータを取得

mrtgはデフォルトでv1なんで一部ネットワーク機器からのデータが通常の設定では取れなかったりする。int64などでしかデータが受け渡せないような情報はv2cやv3のみの解放となってたりする。

その場合は以下のようにtargetを書き換えてあげる。

x.x.x.x:public@hoge:::::2

ちなみにコロンのあいだは下のような意味があるようだ

community@router[:[port][:[timeout][:[retries][:[backoff][:version]]]]]

つまりsnmpのポートを変更したりとかできる訳だ。

本家mrtgのサイト見ると
並列で取得作業をさせることが出来たりとか
結構面白い

biblioの電子書籍フォーマット

完全にメモです。

ネットサーフィンして調べた結果

BookSurfingとXMDFらしい。
epubは将来対応されるのかしら

2010年2月11日木曜日

ext2,3のディスク領域を一気にコピー

同じ容量ならddコマンドでも出来ますが、違う容量でも。
(例)sda1をsdb1にコピー

まずはバックアップ先のディスクをフォーマットしておく。
mkfs.ext3 /dev/sdb1

マウントしてマウント先のディレクトリに移動
mkdir /media/test
mount -t ext3 /media/test /dev/sdb1
cd /media/test

dump及びrestoreコマンドを利用
dump -0uf - /dev/sda1 | restore -rf -
これでオッケイ
ちなみに

ssh hoge@hogehoge 'dump -0uf - /dev/sda1 ' | restore -rf -
とか出来たりする

touch diamond(S21HT)用のVNCSERVER設定

単なるメモレベルですが

windows mobile用のVNC viewerを入れたtouch diamondに合わせた起動コマンド

vncserver -geometry 450x535 -depth 16

2010年1月27日水曜日

device-mapper-multipathを使う

ファイバチャネルのシステムやiscsiなどを使って
複数のストレージ接続を一本の経路として使う場合に
multipathを使用する。

特にRHEL5.x(CentOS5.x)でファイバ環境を利用する場合には
利用することが多くなるとおもう。

4.xだとmultipathドライバが提供されていたが、
ドライバが見つからないのはこれがあるから?

インストール時から利用する場合は
mpathを付けることで自動で動作する。

起動後であれば

/etc/multipath.conf
のファイルの中の
#blacklist {
# devnode "*"
#}
この部分をコメントアウトして、
再起動を行う。

複数のファイバで単一のストレージを参照する場合に、
設計によっては片方がつながっていると片方からはブロックデバイスにアクセス出来ない
問題が発生する。、

この場合にmultipathを有効化していないと
ブロックデバイスが見つからないエラーが発生する上に
起動時やブロックデバイスのチェックをするときに
非常に長い時間のウェイトがかかる

kernel: end_request: I/O error, dev sdf, sector 0

こんな感じのデバイスIOエラーが発生する。

これはmultipathを適用したとしても
発生はするが、長い時間のウェイトは掛からない。

multipathの状態の確認は
# multipath -ll

を利用することで確認できる。
そうすると経路がtree式で表示され
activeか確認することができる

有効な状態でデータをやり取りしてファイバを抜いた場合の挙動は
ghost側であれば転送も止まらず無影響にて通信し続け
ready側であれば一時的に転送は止まるが
データの欠落は起きない。

不必要な情報を一気に削除

コメントも含まれた一般的コンフィグファイルから
コメント以外の行だけを表示する

$ grep -v ^# hogehoge.cfg |cat -s

作業ログから実行データで、不必要なメタデータを削除する

$ grep -v ^+ hogehoge.log | tr -cd '[:print]\n' | cat -s

こんな感じかな

コマンドラインで作業をやるときにやること

$ script ファイル名
(ログを作成する)

$ bash -x

実行状態をデバックモードで表示。

みんなやる必要なし?

2010年1月21日木曜日

REDHATならこんなカーネルコンパイルはいかが?

普通にカーネルを解凍して
コンフィグを
make menuconfig
make xconfig
make gconfig
なんかで作成する。
bootのところにconfigファイルが有ったりするので、
それを解凍したディレクトリのルートに.configにして置いてから
変更すると楽になったりする。
$cp /boot/config-x.x.x-* ./.config
こんな感じで


そんでもって、
make rpm
を使うとコンパイル後にrpm化してくれる。

出来たら、
#rpm -ivh /usr/src/redhat/RPMS/i386/kernel-x.x.x.rpm
見たいな感じで新しいカーネルをインストールして


# mkinitrd /boot/initrd-x.x.x x.x.x

でinitファイルを作成したら、


grub.confを作成して終了
title Fedora Core (x.x.x)
root (hd0,0)
kernel /vmlinuz-x.x.x ro
initrd initrd-x.x.x



こんな感じで、作るとrpm化されて運用も楽だし、
インストールも簡単だったりする。


makeにrpmを入れてくれた人に感謝

grubを修正しようと思ったら

RHLでインストールディスク入れてgrubの修正しようと思ったら、
うまく修正されないでやんの。

なんてこと良くあるので、grubコマンド使ってmbr作ってやるってやつです。

とりあえずインストールディスクから
linux rescueに入る。
起動後はマウントしてもしなくても可
grubコマンドからgrubコンソールを呼び出し
英語キー配列になる。

grub> install (hd0,0)/grub/stage1 (hd0) (hd0,0)/grub/stage2 (hd0,0)/grub/manu.lst


でhd0のmbrにインストール


終わったら、再起動するとgrubコンソールだけ立ち上がるので、
root (hd0,0)
kernel カーネルファイル root=ルートになるデバイス名(例 /dev/sda1 LABEL=/などなど)
initrd initファイル
boot


のコマンドを打てば起動するので起動後に
grub-install /dev/sda
なんかでインストールすると
次からはコマンド打たなくても起動します。

BASHで使える小技集

1.
文字列を正規表現で判定したい

if echo ${check_str} grep ${word} ; then
fi

2.
サブ関数を実行しての判定

if sub_func ; then
fi

sub_funcの戻りが0だと真、0意外だと偽になる。


3.
ある、一定時期より古いファイルを表示する
find [ directory ] -mtime +number -print
例)
find /usr -mtime +3 -print
3日以前のファイルを表示する
-printを-exec rm {}にすると選択したファイルを削除する

4.
変数の名前を変数を使って作成
eval "hoge${hogehoge}=\"data\""

5.
数字の計算
$[ number + number ]

6.
CSVデータのある項目だけを配列にとりたい
array_name=(`cat file_name awk -F, '{print ${number} `)

yumやup2dateで使用できるリポジトリ作成

CentOSやRHELで構築作業をするときや
一括で同一バージョンにアップデートする場合に
同一箇所からyumを使って作業をしたいときに
配布サーバを作成したい。

そのときは、配布元サーバにftpやapacheをインストールした後に

rpm群を決まったディレクトリに配置する。
以下のコマンドを実行する
createrepo ${dir_name}

これでクライアント側のyumの/etc/yum.repo.dにリポジトリデータを入れれば
yumで通信することができる

ちなみにローカルのファイルからアップデートやインストールする時は
baseurlのアドレスの頭を例によってfile:///で始めると良い

HTTPSの接続テスト用コマンドとsslの起動に関して

単なる覚書ですが、
以下のコマンドで可能

openssl s_client -connect localhost:443


apachectlのstartsslが使えなくなるって事で
対応はどうしたら良いか調べてみたら
コンフィグの中のDefine SSL

を消しておけって書いてあった。

2.2系からは対応していないらしい