僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
stable_supfileのRELENG_5_3をRELENG_5_4にして cvsup -g してみた。currentにするなら"."だけでいいらしい。 が、それはまた次回にしよう。 さて、どうコケるんだろうか。
Wed Apr 13 16:43:45 JST 2005 make buildworld begin Wed Apr 13 18:11:53 JST 2005 make buildworld OK make buildkernel begin Wed Apr 13 18:29:54 JST 2005 make buildkernel OK make installkernel begin Wed Apr 13 18:30:13 JST 2005 make installkernel OK make installworld begin Wed Apr 13 18:33:28 JST 2005 make installworld OK $ uname -a FreeBSD DESKTOP.domain.tld 5.4-RC2 FreeBSD 5.4-RC2 #1:\ Wed Apr 13 18:19:55 JST 2005 \ root@DESKTOP.domain.tld:/usr/obj/usr/src/sys/MYKERNEL
makeは無事に通り、昨日は忘れていたmergemasterも (多分)問題はなかった(大した設定はしていない)。 が、makeを処理して結果を(エラーが出たらその時刻と 段階も)メールするシェルスクリプトで 宛先のメアドを間違えていた (幸いにして存在しないドメインだった模様)...O_R_Z!
あと、同じマシンの別のシステム(PlamoLinux)のホストキーと ユーザーのキーを持ってきてFreeBSDに入れた。 インストールしてあるどのOS(Winを除く)も、他のホスト から同一のホスト、同一のユーザと認められるようになった (筈だ)。
試す。 at(1)を使って、正午きっかりにプライマリのDNSを更新し、 それがセカンダリにいつ反映されるかをシェルスクリプトで lookupし続けてみる(他所には何も行かないはずだ)。 更新したらメールで通知するようにしてみた。
PRI$ cat /etc/namedb/ZONE.zone $TTL 86400 ;どっからのコピペか一目瞭然(^^; ZONE. IN SOA PRIMARY.ZONE. root.PRIMARY.ZONE. ( XX ; 10800 ; 3600 ; 604800 ; 86400 ) (ry SEC $ ls -lT /etc/namedb/ -rw-r--r-- 1 named wheel 590 Apr 13 10:24:23 2005 bak.PTR.rev -rw-r--r-- 1 named wheel 635 Apr 13 11:24:54 2005 bak.ZONE.zone -rw-r--r-- 1 named wheel 547 Mar 23 11:56:54 2005 named.conf -rw-r--r-- 1 root wheel 2517 Jan 28 08:00:00 2004 root.cache
ゾーンファイルをいじってる最中、うっかり行頭に# してしまった。 その結果、名前解決が全然できなくなってしまった。
さて、気長に待っていたが、結果はちょっと首をひねった。 AレコードとPDRレコードの更新時刻が(プライマリに比べて)かなりずれている。 前の更新からの差が埋まらないんだろうか。まあ、どうしても合わせたければ セカンダリ側でゾーンファイルを消して再起動すればいいんだろうけど。
SEC $ ls -lT /etc/namedb/ -rw-r--r-- 1 named wheel 590 Apr 13 13:15:42 2005 bak.PTR.rev -rw-r--r-- 1 named wheel 635 Apr 13 14:09:03 2005 bak.ZONE.zone -rw-r--r-- 1 named wheel 547 Mar 23 11:56:54 2005 named.conf -rw-r--r-- 1 root wheel 2517 Jan 28 08:00:00 2004 root.cache PRI $ ls --full-tile /etc/namedb -rw-r--r-- 1 root root 814 Wed Apr 13 11:57:17 2005 PTR.rev -rw-r--r-- 1 named named 1085 Wed Apr 13 11:56:42 2005 ZONE.zone -rw-r--r-- 1 named named 483 Sat Feb 05 17:39:59 2005 named.conf -rw-r--r-- 1 named named 2518 Sun Nov 21 18:07:37 2004 root.hints
今度は両方を修正後、同時に touch して、もう一度(今度は15:20分)やってみた。
PRI $ ls --full-tile /etc/namedb -rw-r--r-- 1 named wheel 590 Apr 13 16:05:06 2005 bak.1.168.192.rev -rw-r--r-- 1 named wheel 635 Apr 13 16:38:30 2005 bak.kuzuore.zone
auth eth0 iface eth0 inet dhcp
を有効にして、^iface, ^address, ^network, ^netmask,
^broadcast, ^gateway, ^auto eth0 をコメントアウト。
それから、/etc/modulesにsis900を追記。ntpサーバは
どこで指定するのが流儀かよくわからなかったが、
鯖の tcpdump -n udp をにらみながら再起動を繰り返して、
/etc/default/ntpdate の "NTPSERVERS" を変更した。
懸案がひとつ片付いた。
ports/x11-wm の下をmake install。殆ど聞いたことのないのばかりを選ぶ。
1,2回起動させたら、はい次。
こーゆーのだったらむしろDebianの方が得意かも。
が災いして、firefoxでは日記につくrefererのリンクが、なかなか更新されないようだ。 キャッシュを1MB位まで絞っても変らない。
と書いたら、さっきまで表示されなかった「本日のリンク元」がどっと。
Winからputtyを介してw3m+nvi、という環境は非常にややこしく、死ぬほど面倒だ。
特に、MS-IMEのON/OFFとviの入力/編集モードが頻繁に衝突する。
に挑戦。
イメージ(Vine31-ppc.iso)をCDRWに焼き、空っぽのHDDをつけた白いポリタンクに
入れて、Altキーを押しながらリセット。cキーでは起動時に吐き出さてしまう。
起動メニューはCDのイメージを認識したが、
矢印をマウスでクリックしても変わらない。適当に
キーボードを叩くうちに、Enterでコマンドプロンプトに降りれることに
気づく。
"install"でインストーラが起動し、対話メニューでXな
インストーラに至る。
しかしそこまで。
インストーラがHDDを認識しないようなのだ。
システムはHDDに気づいているが、インストールは先に進めない。
オプションメニューからターミナルをあげて
fdiskでなんだかんだはできた。パーティションを切ったりmkfsしたり
消したり、はては cat /dev/zero > /dev/hda したり。しかし効果皆無。
オプションメニューから「ログウィンドウを表示」させると、
「ドライブパーティションの設定」
メニューで、何かとんでもないエラーで先に進まない模様。...
fdisk もう少し凝ってもよかったか。
とにかく、いつの日か捲土重来を。
KNOPPIXメジャーバージョンリリース。早速bittorrentでgetせんとする。
knoppix_v5.0.0DVD_20060225_cebit-20060406+IPAFont_AC20060412.iso.torrent
を取ってきて、btdownloadcurses.pyにかけた。がノートに落すのはすぐ
諦めた。鯖の一つに移す。
------------------------------------------------------ | file: k*2.iso | | size: 3,918,977,024 (4 GiB) | | dest: /$PATH/k*2.iso | | progress: ________________________________________ | | status: finishing in 73:32:14 (0.1%) | | dl speed: 37.7 KB/s | | ul speed: 75.1 KB/s | | sharing: 2.192 (10.0 MB up / 4.5 MB down) | | seeds: 2 seen now, plus 1.814 distributed copies | | peers: 8 seen now, 34.6% done at 1416.2 kB/s | ------------------------------------------------------
こんなsharing初めて見たぞ。
大抵(gentooとかFedoraとか)あっという間にどっと落ちて来て、
あっぷあっぷする暇もなかったんだけど。
dl が一時かなり上がったが、seedが減るとまた下がった。
# iptables \ -t filter -A INPUT \ -i eth0 -p tcp \ -s ! $LOCAL_NET -d $SERVER \ --dport http -m string \ --string "$TRACKBACK_URL" \ --algo kmp -j DROP
とてもすっきりした。
文字列マッチは
セキュリティ確保には不向きらしいが。
とりあえず入れた。フルインストール、ファイアウォールなし。
インストーラはXが自動起動したが、インストール後のシステムはXを
自力で起動できなかった。デフォルトのrunlevelを3に変える
こまかいことは来週以降にしよう。
42曲のどれか。
多分ランダムになってる筈。
#!/bin/sh DIV=43 function rand () { RA=`echo ${RANDOM} % ${DIV} | bc` if [ "$RA" -eq "0" ]; then rand fi } while : ; do rand ogg123 -d au $RA.ogg -f - | aplay - sleep 5 done
移行後に(前から?)tdiaryの直下にコピーするのを忘れていた。
今日になってやっと対応。
でも、トラックバック受信を有効にした途端に猛烈なspamの嵐。
これじゃ
^httpなメッセージのreject(tdiaryにおいては、トラックバックの
受信拒否になるみたい)
を外す気にはなれないなぁ。
$ grep TrackBack 200801.tdc | wc -l 77
ようやく5.0p1に上げた。
さっきのランダム再生スクリプトから、関数randだけを
切り出し、10000回実行してみた。
要するに、何番めが多く再生されるか、である。
この場合、2番めの曲は81回(0.8%)しか再生されず、 41番めの曲は551回(5.5%)も再生されている。うーむ。
ぐぐってるうちに、 JMのページに出た。以下、引用。
<引用>
RANDOM
このパラメータが参照される度に、 0 から 32767 までの
ランダムな整数が生成されます。
RANDOM に値を代入すると、
乱数の列を初期化できます。 RANDOM を unset すると、この
変数の特殊な性質は無くなります。後で再び set しても元には
戻りません。
<引用/>
毎回rand()の中で、RANDOM=$RANDOMとやってみる。
#!/bin/sh
DIV=43
function rand () {
RANDOM=$RANDOM
RA=`echo ${RANDOM} % ${DIV} | bc`
if [ "$RA" -eq "0" ]; then
rand
fi
}
rand
echo $RA
で、同じく10000回。を2回繰り返す。
若干均等に近くなった(最大297(3.0%)、最小145(1.5%))が、特定の曲の 再生回数が毎回少なめな点は、あまり改善できなかった。
それにしても、画像の縦寸法がまちまちなのも、なんとかせねば。
結局インストールは諦め、別PC(amd64のQEMU)で作成、インストールした
イメージを転送する。
それでも重い。リモートデスクトップか何かでも使わないと、
どうにもならない。
LFSに放り込んだままだったEmacs-22.3.2 ちょこちょこ 調整。まずは~/.emacsに追記
(column-number-mode t) (line-number-mode t) (display-time) (menu-bar-mode -1) (tool-bar-mode -1) (setq transient-mark-mode t) (global-set-key "\C-h" 'delete-backward-char)
>>> D = {} >>> D['a'] = 'b' >>> print D {'a': 'b'} >>> D['a'] = D >>> D {'a': {...}} >>> print D['a'] {'a': {...}} >>> print D['a']['a'] {'a': {...}} >>> print D['a']['a']['a'] {'a': {...}}
>>> print string 0123456789abcdef >>> print string[::-1] fedcba9876543210 >>> string[-1:-17:-1] == string[::-1] True >>> string[0:17:1] == string[:] True
標準入力非対応でcatと呼べるかは知らない。
import sys for x in sys.argv[1:]: filename = x F = open(filename) while True: line = F.readline() if len(line) == 0 : break print line.rstrip() F.close()
手習いの例題に、アトムのリストから、指定されたアトムと
同じ最初のアトムを一つ消すものがあった。
全部消すように書いてみた。
(define r-rember (lambda (atom list) (cond ((null? list) '()) ((eq? atom (car list)) (r-rember atom (cdr list))) (#t (cons (car list) (r-rember atom (cdr list)))))))
最初のhackはぜんぜんダメだったが、バスの中で 思いついた、eq? が真のときに再帰を追記する案が 思ったよりあっさり動いてしまった。
(rember 'a '(b c d a a f)) (b c d a f) (r-rember 'a '(b c d a a f)) (b c d f)
別々の行に同じ処理、というのも変な気はするが。
$ time nmap -sn 192.*.*.1-254 | tee ping.txt real 0m22.217s user 0m0.034s sys 0m0.050s $ head -n10 ping.txt Starting Nmap 6.40 ( http://nmap.org ) at 2016-04-13 09:36 JST Nmap scan report for 192.*.*.1 Host is up (0.0027s latency). Nmap scan report for 192.*.*.41 Host is up (0.066s latency). Nmap scan report for 192.*.*.45 Host is up (0.000087s latency). Nmap scan report for 192.*.*.46 Host is up (0.00094s latency). $ grep -c 192 ping.txt 24
下記の設定をしてping(1)に反応しないPC(Debian Stretch)もひっかかった。
$ sudo iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination DROP icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 127.0.0.1 0.0.0.0/0 ACCEPT all -- 127.0.0.1 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source
スキャン中の通信は、狙われた側からはこんな感じ。
要するに、tcpの80と443にアクセスして存否を確認しているということか。
ちなみにssh以外、外部へのサービスは上げていない。
$ sudo tcpdump -q -n host $SCAN_PC and port not 22 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 11:28:24.101073 ARP, Request who-has 192.*.*.62 tell $SCAN_PC, length 46 11:28:24.101309 ARP, Request who-has 192.*.*.63 tell $SCAN_PC, length 46 11:28:24.101426 IP $SCAN_PC.43213 > 192.*.*.61.80: tcp 0 11:28:24.101448 IP 192.*.*.61.80 > $SCAN_PC.43213: tcp 0 11:28:24.101528 IP $SCAN_PC.54537 > 192.*.*.61.443: tcp 0 11:28:24.101535 IP 192.*.*.61.443 > $SCAN_PC.54537: tcp 0 11:28:25.097731 ARP, Request who-has 192.*.*.62 tell $SCAN_PC, length 46 11:28:25.097965 ARP, Request who-has 192.*.*.63 tell $SCAN_PC, length 46 11:28:26.097971 ARP, Request who-has 192.*.*.62 tell $SCAN_PC, length 46 11:28:26.097982 ARP, Request who-has 192.*.*.63 tell $SCAN_PC, length 46
tcpの80と443もDROPすると、今度は見つけられなくなった。
やはり git( hub)に入れると、あれこれ変えたくなったりする。
あちこちを参考にして、
FSの設定をスクリプトに入れた。
そして、
大文字も小文字もごっちゃに数えるようにした。
英文いくつかを通してみた。いちばん多いのが"e"は動かないが、 その次以降は結構ばらばら(t,a,o,iが比較的多い)な印象。
それにしてもどこで聞いたか忘れたが、 データをすべて配列に突っ込んで、その要素を 順次連想配列に突っ込みながら+1(データの重複を排除して、 その数を数える)。というアルゴリズムは 結構凄い、気もする。
後者はsedでは無理っぽい。100001,$ なんてやってられないだろう。
$ foo=_.buildworld.aarch64.log $ sed -n 3,4p $foo; tail -n3 $foo -------------------------------------------------------------- >>> World build started on Fri Apr 13 13:02:22 JST 2018 -------------------------------------------------------------- >>> World build completed on Fri Apr 13 14:37:46 JST 2018 --------------------------------------------------------------
$ uname -a FreeBSD $HOST 12.0-CURRENT FreeBSD 12.0-CURRENT #0 r332465: Fri Apr 13 14:42:54 JST 2018 root@PC_HOST:$DIR/crochet/work/obj/$DIR/src/arm64.aarch64/sys/GENERIC arm64
USB2.0のハブと、3.0のメモリと。
$ time sudo dd if=/dev/sdc of=foo.img bs=1M 14896+0 レコード入力 14896+0 レコード出力 15619588096 bytes (16 GB, 15 GiB) copied, 589.546 s, 26.5 MB/s real 9m49.593s user 0m0.122s sys 0m42.243s
$ time sudo dd if=foo.img of=/dev/sdc bs=1M 14896+0 レコード入力 14896+0 レコード出力 15619588096 bytes (16 GB, 15 GiB) copied, 1492.81 s, 10.5 MB/s real 24m53.868s user 0m0.100s sys 0m12.523s
IIJMio、Softbank、WiMaxそれぞれでUSBテザリングでping。
今回は
v4
も
v6も同じサーバに向けた。
少し前はここでWiMaxを使うと頻繁に切れたが、
今はなぜか、遅くはあってもかなり使える状態。
IIJとSBは、似ているような似てないような。
多分。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。
※ takanyon [randomの種にrandomから入れたものしか入れなかったらあまり意味がないと思います。せめて時間とかそのあたりを..]
※ kuzu [なるほど。$RANDOMにnanosecondを入れてみました。 かなり平均的な感じになりました。ありがとうございま..]