http://inpwjp.blogspot.com/2011/05/plefixnetmaskshell.html
ここで紹介したプレフィックスからネットマスクを作る方法よりもさらにスマートな方法見つけたので記載。
prefix=${prefix_num}
export $(/bin/ipcalc -m 0.0.0.0/${prefix} );echo $NETMASK
これだけです。
すごいすっきりした。
2011年11月22日火曜日
2011年8月26日金曜日
iSCSIの特性
iSCSIは遅いというイメージがありがち
D社のEをいろいろ試験したことがあって、
やはり最高速度はギガビットイーサの限界で頭打ちになる。
これはmultipathを使っても同じ結果なのだが、
本領はここではなく、複数からの同時アクセス時の速度低下率が圧倒的に低い。
Eのクラスタを増強すればするほど低下率が低くなる傾向にあるように見受けられた。
仮想化システムのストレージ環境としては理想的な動作形態だと思われる。
NASとは違って書き込みの排他ロックはかからないので、
パーテションで分割しての話だが、
サーバ側で複数のネットワークポートを持ってmultipathを行った場合も
複数のファイルの同時参照で速度の低下率は軽減される。
(1つのセッションでは1本分しか使わないが複数の通信になると空いているポートで通信するような挙動になっている。複数のポートで1つの通信を分割して高速化するような動作はしない。)
我が家のterastation iscsiでは複数のパーテションに分けるのも面倒なのでテストはしていない。
terastationの場合はポートトランク(Linuxのボンディングモード0だと思われる)を使ってるので
経路上の通信速度は2本分までマルチバンドしていると思われるが、ディスクの速度が遅いので
恩恵は受けられない。
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 &
で実行させてる。
必須のシステムじゃないし作りこみはしない方向で。
(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
消去対象のラインの位置に依存しない。
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]} )
こんな感じの変数を入れ子の中で持たせることもできるのね。
いろいろ考えてたんだけど
data=$( host_data=($(dig ${fqdn} a |grep -v ";" | grep -v CNAME | grep A)) ; echo ${host_data[4]} )
こんな感じの変数を入れ子の中で持たせることもできるのね。
2011年5月24日火曜日
while read を使うshell
特定のファイルから情報を取り込んで一定の情報を吐き出す場合に
変数として$1,$2をとるという形式があると思う
より進化したやり方としてはgetoptを使って引数をより詳細に設定する方法
しかし単純なデータの編集などの場合は
while read line
do
echo $line
done
みたいなwhile readを使って標準出力に表示する方法がいい
shellの想定した使い方として
cat file1 | sh shellex.sh > file2
このようなshellで一般的なパイプとリダイレクトを利用した
データの受け渡しが出来る。
単純なデータの受け渡しだけでなく
cat file1 |sed s/aa/AA/ | awk -F; '{print $3}' | sh shellex.sh | grep -v "^#" > file2
みたいな一般的な編集コマンドの間に挟んで利用することも出来る
作ったときは単体かもしれないけど
将来的にはいろんな形式の間に入れることが出来て非常に便利になる。
変数として$1,$2をとるという形式があると思う
より進化したやり方としてはgetoptを使って引数をより詳細に設定する方法
しかし単純なデータの編集などの場合は
while read line
do
echo $line
done
みたいなwhile readを使って標準出力に表示する方法がいい
shellの想定した使い方として
cat file1 | sh shellex.sh > file2
このようなshellで一般的なパイプとリダイレクトを利用した
データの受け渡しが出来る。
単純なデータの受け渡しだけでなく
cat file1 |sed s/aa/AA/ | awk -F; '{print $3}' | sh shellex.sh | grep -v "^#" > file2
みたいな一般的な編集コマンドの間に挟んで利用することも出来る
作ったときは単体かもしれないけど
将来的にはいろんな形式の間に入れることが出来て非常に便利になる。
2011年5月18日水曜日
plefixからnetmaskに変換するshell
plefixからnetmaskを変換するbashスクリプト
難しいことは考えずにリストを作成して参照する形にした。
netmask0="0.0.0.0"
netmask1="128.0.0.0"
netmask2="192.0.0.0"
netmask3="224.0.0.0"
netmask4="240.0.0.0"
netmask5="248.0.0.0"
netmask6="252.0.0.0"
netmask7="254.0.0.0"
netmask8="255.0.0.0"
netmask9="255.128.0.0"
netmask10="255.192.0.0"
netmask11="255.224.0.0"
netmask12="255.240.0.0"
netmask13="255.248.0.0"
netmask14="255.252.0.0"
netmask15="255.254.0.0"
netmask16="255.255.0.0"
netmask17="255.255.128.0"
netmask18="255.255.192.0"
netmask19="255.255.224.0"
netmask20="255.255.240.0"
netmask21="255.255.248.0"
netmask22="255.255.252.0"
netmask23="255.255.254.0"
netmask24="255.255.255.0"
netmask25="255.255.255.128"
netmask26="255.255.255.192"
netmask27="255.255.255.224"
netmask28="255.255.255.240"
netmask29="255.255.255.248"
netmask30="255.255.255.252"
netmask31="255.255.255.254"
netmask32="255.255.255.255"
prefix=${plefix_num}
netmask=$(eval "echo \${netmask${plefix}}")
ちなみにplefixをIPから分割するには
echo ${ip} | sed s#.*/##
みたいにすると出来る。
難しいことは考えずにリストを作成して参照する形にした。
netmask0="0.0.0.0"
netmask1="128.0.0.0"
netmask2="192.0.0.0"
netmask3="224.0.0.0"
netmask4="240.0.0.0"
netmask5="248.0.0.0"
netmask6="252.0.0.0"
netmask7="254.0.0.0"
netmask8="255.0.0.0"
netmask9="255.128.0.0"
netmask10="255.192.0.0"
netmask11="255.224.0.0"
netmask12="255.240.0.0"
netmask13="255.248.0.0"
netmask14="255.252.0.0"
netmask15="255.254.0.0"
netmask16="255.255.0.0"
netmask17="255.255.128.0"
netmask18="255.255.192.0"
netmask19="255.255.224.0"
netmask20="255.255.240.0"
netmask21="255.255.248.0"
netmask22="255.255.252.0"
netmask23="255.255.254.0"
netmask24="255.255.255.0"
netmask25="255.255.255.128"
netmask26="255.255.255.192"
netmask27="255.255.255.224"
netmask28="255.255.255.240"
netmask29="255.255.255.248"
netmask30="255.255.255.252"
netmask31="255.255.255.254"
netmask32="255.255.255.255"
prefix=${plefix_num}
netmask=$(eval "echo \${netmask${plefix}}")
ちなみにplefixをIPから分割するには
echo ${ip} | sed s#.*/##
みたいにすると出来る。
2011年3月8日火曜日
kindleでpdf
久々に投稿
kindleでpdf使うのが結構不安定だったのですが、
最近のファームにしてみると安定して見れることを確認。
ありがとうamazon
というわけで最近はkindleでpdfを閲覧中。
kindleでpdf使うのが結構不安定だったのですが、
最近のファームにしてみると安定して見れることを確認。
ありがとうamazon
というわけで最近はkindleでpdfを閲覧中。
登録:
投稿 (Atom)