Skip to main content

ログ取得ツール

格下げ

そうそう、今朝の日経に、生命保険会社が予定利率を下げる制度を使った場合、債務不履行と見做して一番下まで格下げすると宣言している話が載っていた。加入者が全員利下げに賛成してもダメなんだそうだ。 これで破綻する保険屋さん以外は予定利率を下げないのではないかと感じた。そこまで格下げされて、どうやって資金を調達するのだろうか。頭の痛い問題だ。

SCOへの反発

Linux系の人はESRをはじめ、SCOの対IBM訴訟には反発している人々が多いのだが、 こういう文書(opensource.jp)が出た (原文(opensource.org))。なるほど。 これ(sco.com)に細かくイチャモンをつけている。思想というか原則というか、根幹だけあればいいと思うのだが、訴訟的なことになるとそうもいかないのだろう。

ブロックアクセストレース

Linuxでデバイス(特にブロック)アクセスのトレースをとりたいがカーネルやシステムに変更は加えたくない。どうするか。 薄皮のブロックデバイスを作って、devfsを操作して同じデバイスに見えつつmake_request()がhookされているというのはどうだろうか。しかしdevfsはrenameを実装していないのでした。うーむ。fstabを書き換えろというのはだめだよなぁ。 やはりカーネルの一部に変更(hookを入れる)+データを持ちモジュールを使うしかない。となるとLTT(opersys.com)と何が違うというのか。 (追記) 2003-06-05 10:14 とりあえずパーティション毎ということで、以下のようなスクリプトを作ってみた。この程度ならどうにでも。


#! /usr/bin/python

import os
import sys
import time
import string

name=["rio", "rmerge", "rsect", "ruse", "wio", "wmerge", "wsect",
      "wuse", "running", "use", "aveq"]

def read_part(fname="/proc/partitions"):
  fd=open(fname, 'r')
  lines=fd.readlines()
  fd.close()
  rst={}
  for line in lines:
    line=line.strip()
    spl=line.split()
    if len(spl)==15 and spl[3]!="name":
      rst[spl[3]]=spl[4:]
  return rst

def diff_part(src, dst):
  rst={}
  for key in src:
    if dst.has_key(key):
      #for i in range(len(src[key])):
      for i in range(7):
        if dst[key][i]!=src[key][i]:
          diff=string.atoi(dst[key][i])-string.atoi(src[key][i])
          if rst.has_key(key):
            rst[key].append([i, diff])
          else:
            rst[key]=[[i, diff]]
          #print key, name[i], string.atoi(dst[key][i])-string.atoi(src[key][i])
  return rst

sleeptime=2
if len(sys.argv)>1:
  sleeptime=string.atoi(sys.argv[1])

src=read_part()
while 1:
  time.sleep(sleeptime)
  dst=read_part()
  rst=diff_part(src, dst)
  if len(rst)>0:
    t=time.time()
    print "time:", t, time.ctime(t)
    for key in rst:
      #print "rst:", rst[key]
      for i in rst[key]:
        #print "i", i
        print key, name[i[0]], i[1]
  src=dst