2012年1月26日木曜日

CentOS6で日本語入力

remoteXなどでログインして

日本語入力をするための方法。

~/.bashrcとか/etc/bashrcに以下のような設定を追加する。

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

入力の設定を行うときはibus-setupで設定変更画面を表示する。

2011年11月22日火曜日

prefixからnetmaskにshellで変換する方法 その2

http://inpwjp.blogspot.com/2011/05/plefixnetmaskshell.html

ここで紹介したプレフィックスからネットマスクを作る方法よりもさらにスマートな方法見つけたので記載。

prefix=${prefix_num}
export $(/bin/ipcalc -m 0.0.0.0/${prefix} );echo $NETMASK


これだけです。
すごいすっきりした。

2011年8月26日金曜日

iSCSIの特性

iSCSIは遅いというイメージがありがち
D社のEをいろいろ試験したことがあって、
やはり最高速度はギガビットイーサの限界で頭打ちになる。
これはmultipathを使っても同じ結果なのだが、
本領はここではなく、複数からの同時アクセス時の速度低下率が圧倒的に低い。
Eのクラスタを増強すればするほど低下率が低くなる傾向にあるように見受けられた。
仮想化システムのストレージ環境としては理想的な動作形態だと思われる。
NASとは違って書き込みの排他ロックはかからないので、
パーテションで分割しての話だが、
サーバ側で複数のネットワークポートを持ってmultipathを行った場合も
複数のファイルの同時参照で速度の低下率は軽減される。
(1つのセッションでは1本分しか使わないが複数の通信になると空いているポートで通信するような挙動になっている。複数のポートで1つの通信を分割して高速化するような動作はしない。)


我が家のterastation iscsiでは複数のパーテションに分けるのも面倒なのでテストはしていない。
terastationの場合はポートトランク(Linuxのボンディングモード0だと思われる)を使ってるので
経路上の通信速度は2本分までマルチバンドしていると思われるが、ディスクの速度が遅いので
恩恵は受けられない。

2011年7月19日火曜日

Atom 330用のCPU周波数自動変更用のshell

CentでAtom330使ってるけど、CPU周波数の自動変更がどうも上手くいかないので
(p4-clockmodを使っても )

設定を変更できるような簡易的なshellを作成

======
#!/bin/sh -x

middle="800"

under_freq="199"

top_freq="1599"

current_freq=$(/usr/bin/cpufreq-info -f)
current_loadavg=$(cat /proc/loadavg | awk '{print $1}' )

if [ $(/bin/echo "${current_loadavg} > 1.2" | /usr/bin/bc ) = 1 ]
then
  if [ $current_freq -lt $[$middle * 1000 ] ]
  then
     /usr/bin/cpufreq-set -c 0 -f ${top_freq}MHz
     /usr/bin/cpufreq-set -c 1 -f ${top_freq}MHz
  fi
elif [ $current_freq -gt $[$middle * 1000 ] ]
then
  /usr/bin/cpufreq-set -c 0 -f ${under_freq}MHz
  /usr/bin/cpufreq-set -c 1 -f ${under_freq}MHz
fi

exit 0
======

いい加減に作ったんで保証は無いです。
とりあえずcrontabで定期実行しております。

追記。
crontabだとなんだかあれなのでdaemonのシェルでラップしてみました。

#!/bin/sh

while :
do
  /root/change-cpufreq.sh
  sleep 5
done

こんな感じで。

そして
# nohup XXXXX.sh &
で実行させてる。
必須のシステムじゃないし作りこみはしない方向で。

Android+DLNA

スマートパッドとDLNAの親和性すごい。

我が家の環境では
Linux+mediatombのDLNAサーバに
HoneyComb+UPnPlay+VPlayer

DivXもMP4もこれで見てる。

2011年7月15日金曜日

bashでAのファイルからBのファイルにあるラインを消去

タイトルのとおり。ファイル同士を比較してラインを消去する。
消去対象のラインの位置に依存しない。

cat ${filenameA} | while read line ; do if ! $(grep "\^${line}\$" ${filenameB} > /dev/null ) ; then echo ${line} ; fi ; done

2011年6月22日水曜日

bashで入れ子の入れ子

ちょっとホストデータの取得方式を
いろいろ考えてたんだけど

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

こんな感じの変数を入れ子の中で持たせることもできるのね。