トップ «前の日記(2004-10-09(Sat)) 最新 次の日記(2004-10-11(Mon))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2004-10-10(Sun) きまぐれ

名前つきパイプ

を本で少し読んで来たので、早速 mknod hoge p やってみた。

$ls -alF hoge
prw-r--r--    1 hoge   group          0 10月 10日  19:11 
  /home/hoge/junk/hoge|
$ls -alF > hoge &
$ cat -n hoge
(ry

ぴんぴん萌え〜

"ping source" でぐぐると、ping page なんてのがひっかかった。
そのリンク先にはThe Story of the Ping Programなるものがあり、ping.sharも拾えた。
流石に年代物らしく、アーカイブを開いてmake しただけでは(NetBSD,Plamo Linuxどちらでも)ダメだった。

どちらかといえば、netkit-comb に似ているっぽい。つーか、きっかけのパケット過大のエラー処理部分はほとんど同じ。ちなみにexit(1)だったが。

それにしても、後はブログばっかり。
日本語のサイトを探したが、キーワードに -trackback をつけても、こういう箇所に踏み込んだページは探し出せなかった。

今度はDebian

を起動して、ping(1)をつつく。
間違ったオプションの返り値は、やっぱり2である。
今のところ、netkit-base0.10が出所であるとわかっただけ。
ソース取得法も、一から探り直さねばぁぁぁぁぁぁ。

NetBSDの仮想コンソールは

CTRL + ALT + F?
で切り替えるのだそうだ。長いこと迷っていたが、ぐぐって氷解。
これもweb上の日記で拾った。要するにコピペ。

pingの結果判定スクリプトを

なんとか書いてみた。もう5時半近くだが、夜も長くなったようだ。

 #!/bin/sh
 HOST=fuga
 NUM=65450
 while :
   do
     ping -c 1  -n -s $NUM $HOST
     RES=$?
     if [ "$RES" == 0 ] ;  then
       echo OK
       echo Packet size is $NUM + 8 
     else if [ "$RES" == 2 ]; then
       exit
       fi
     fi
     NUM=$(expr $NUM + 1)
     sleep 1
 done

動くものにするだけで精一杯。

tdiary編集、再編集...

まだ午前3時なのに、ログ見たら今日だけでtdiaryにアクセスすること150回に及ぶ。
我ながら一体何やってるんだろうか。

nviが落ちた後に

同じw3mから再度書き込めない。いや、nviは起動するのだが、行がバラバラの位置から始まっていてまともに編集できないのだ。

午前2時前いきなり

SUPサーバが猛烈にデータを送り始めた。これまでかなり負荷が集中していた模様。
ダウンロードの完了したのは9時前らしい。

Pingのパケットサイズを

適当に変えながらLANの別ホストに打ってみた。
-s 65467(合計65475バイト)が最長らしい。それより大きくするとtoo largeといって止まってしまう。Plamo4.0とNetBSD1.6.2で、同じ結果になった。

しかしそんぐらいシェルスクリプトでやってしまうべきなんだろうが、、、

ただし、戻り値はPlamoLinuxが2で、NetBSDが1だった。意外なところに違いがあるものだ。

ついでにエラーメッセージからソースをつつく。

NETBSD:CVSで取ってきたソースの /usr/sbin/ping の下にping.cがあった。
エラーメッセージはerrxで出してるらしい。
$ grep errx ping.c したが、errx(2,"hoge");する箇所はないようだった。

Plamo: ちょっと手間取った。リングサーバのPlamo-srcの下に、 netkit-combo0.17というパッケージがあり、それを展開するとping.cが入ってた。
こっちはエラーメッセージをfprintfの引数にstderrと"hoge\n"をとる形で 実装している。該当箇所はその次の行でexit(2)していた。BSDとは反対に exit(1)はないようだった。

そこはかとない文化の差異に酩酊した心境であった。

付記。どっちのping も0,1,2とも返す...らしい。勘違いだったようだorz

NetBSD1.6.2

/dev/console見てると、緑色の警告が頻々と出てくる。 手打ちにて一部ログるとこんな風になるか。

 wd0: (aborted command, interface CRC error)
 wd0: soft error (corrected)
 wd0a: error writing fsbn 339632 of 339632-339759 (wd0 bn 8372132;\
 cn 8305 tn 10 sn 62), retrying)

NetBSD + pkgsrc

ドキュメントを斜め読みして、さっそく sup (1) に挑戦した。

 # sup -s -v
 SUP 8.26 (4.3 BSD) for system software at Oct 10 09:12:35
 SUP Upgrade of current-pkgsrc at Sun Oct 10 09:12:35 2004
 SUP Fileserver 8.13 (4.3 BSD) 2247 on sup.jp.netbsd.org at 09:12:35
 SUP Requesting changes since Jan  1 09:00:00 1970

でずーっと止まってる。

んで、そっちは放置してpkgsrc.tar.gzを取って来る方に変えた。 適当にmakeして遊ぶ。FreeBSDのPortsとどう違うんだろなぁ。

emiclockをmake install しようとすると、「ライセンス上受け入れられないから、もし入れたかったらhogehogeを/etc/mk.confに書け」とかいった警告が。

w3m-img on NetBSD を、pkgsrcでmake install しようとすると、こんなエラーとともに止まった。

 making all in tools...
 `libcrypto.so.300.1' is up to date.
 `libssl.so.300.1' is up to date.
 => Fixing buildlink references in files-to-be-installed.
 ===> Installing for openssl-0.9.6m
 ===> openssl-0.9.6l is already installed - perhaps an older version?
 *** If so, you may use either of:
 ***  - "pkg_delete openssl-0.9.6l" and "/usr/bin/make reinstall" to \
  upgrade properly
 ***  - "/usr/bin/make update" to rebuild the package and all of its \
  dependencies
 ***  - "/usr/bin/make replace" to replace only the package without \
  re-linking
 ***    dependencies, risking various problems.
 *** Error code 1
  
  Stop.

なかなか親切だ。他にも色々なパッケージの衝突を告知してきた。

opensshを入れると、果して違うバージョンがふたつ入ってしまったようだ。

 # which ssh
 /usr/bin/ssh
 # ssh -V
 OpenSSH_3.4 NetBSD_Secure_Shell-20030917, SSH protocols 1.5/2.0, \
  OpenSSL 0x0090607f
 # /usr/pkg/bin/ssh -V       
 OpenSSH_3.8p1, SSH protocols 1.5/2.0, OpenSSL 0.9.6m 17 Mar 2004

さあどうする。/etc/rc.confの記述では当然古いのがあがってしまうが。
FreeBSD4.xは/usr/local/etc/の下に実行可能なスクリプトを置いてたっけ。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。