日に新た

「素直な心で日々を新しく生きたい」・・・
と願ってますが、頭でわかっていてもなかなか行動できてないものですね・・・

iniファイルから値を取得するshスクリプト

2008年06月26日 15時46分10秒 | Linuxとか
かなり無理があるが、一応使える。(笑

#!/bin/sh
# 2008.06.25 h.kameda
# get_ini.sh [file] [section] [keyword]
if [ "$1" = "" -o "$2" = "" -o "$3" = "" ]; then
        echo "usage : get_ini.sh [file] [section] [keyword]"
        exit 0
fi

sw=0
while read F1
do
        tmp=`echo $F1 | awk /]/'{print $1}'`
        if [ "$tmp" != "" ]; then
                str=`echo $tmp | awk -F[ '{print $2}' | awk -F] '{print $1}'`
                if [ "$str" = "$2" ]; then
                        sw=1
                else
                        sw=0
                fi
        fi
                if [ "$sw" = "1" ]; then
                        profile=`echo $F1 | grep $3 |  awk -F= '{print $2}' | awk -F; '{print $1}'`
                        keyword=`echo $F1 | grep $3 |  awk -F= '{print $1}'`
                        if [ "$profile" != "" ]; then
                                if [ "$keyword" = "$3" ]; then
                                        echo $profile
                                        break
                                fi
                        fi
                fi
done < $1

.NETで

2008年02月29日 11時52分45秒 | Linuxとか
.NETのVBで漢字の文字長をlengthで取ると、サイズがゼロだったりゼロじゃなかったりする不思議な現象が出てる。
内部初期化と、文字列代入のタイミングの問題なのかな?
どこかで一瞬Nothingとなっているのだろうか。
でも、同じ文字列で正常に出る時もある。
文字コードが関係してるのかもしれない。

オブジェクト指向は結構使い良いのだが、仕掛けが良く判らないので謎な現象を追いかけるのは大変。

Replace INTO・・・・(涙

2008年01月08日 12時15分54秒 | Linuxとか
一晩掛けてパフォーマンス試験をしたのですが、
処理結果のデータをDBに登録するプログラムが
3千件ほど登録できなかったデータを中間ファイルに残し、
1秒おきにえっちらおっちら登録してるという
非常に悠長な作りだったので、イラっと来た私はすかさず・・・

db2 import form aaaa.del of del replace into kkkkktrn

と魔法の呪文を唱えました。
すると、それまで10万件程蓄積されてたDBのテーブルが、
瞬時に3千件のテーブルに置き換わりました。(涙

replace intoじゃなくて、insert intoにしとけばなくならなかったのに。(汗

Duplicateレコードが嫌だったのでreplaceにするという思い込みが悲しい結果を生む事に・・・・

慌てて作業したり、イラッと来て作業するのは悲劇を生むので気をつけましょう。(涙

hwclockコマンドと時刻関連

2008年01月05日 07時44分20秒 | Linuxとか
とある不具合があって、PCの日付を1日ずらす必要があったのですが、
設定を間違えて、再起動後に戻ってた結果、
とんでもないことになってたので反省のメモを・・・

Linuxで日付を設定するのに、dateコマンドがあります。

書式は、
date -s 'Sat Jan 5 07:00:00 JST 2008'
ってな具合。

ただ、これだとPCに内臓しているRTC(リアルタイムクロック)は更新されず、
Linuxのsystem時間が一時的に更新されるだけ。
なので、PCを再起動すると、時間はRTCの持つ日付と時間に戻ります。(残念

そこで、恒久的に時間を変えたい場合、

hwclock --systohc

で、Linuxのsystem時刻をRTCに反映します。
これで、PC再起動しても時間が戻りません。

もしxntpdなどのデーモンを動かしてる場合は、
/etc/ntp.conf
を編集して、タイムサーバーをlocalhostにしておくと良いです。
どのサーバと同期してるかを見るには、
ntpq -p
で確認できます。

あと、ntpdate を使えば、一瞬にして外部の時刻サーバーと同期できます。
現在の時刻に戻したい場合は、
ntpdate -b -s time-nw.nist.gov
ってな感じ。

ちなみに、上記コマンドはroot権限が必要です。