僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
前に
やってみたような
気がするが、今一度試す。
ローカルのDNSサーバにAレコードを一行足す。名前解決を
確認したら httpd.conf に以下を追記、apachectl restart。
# コメント行を外しただけ NameVirtualHost *:80 # 元からあるサーバ # これを忘れると追記した方しか見えなくなった <VirtualHost *:80> ServerAdmin webmaster@example.com DocumentRoot $DocumentRoot ServerName www.kuzuore.com </VirtualHost> # 追記したサーバ <VirtualHost *:80> ServerAdmin webmaster@example.com DocumentRoot $NEW_DocmentRoot ServerName $NEW.kuzuore.com # あと適当に色々 </VirtualHost>
グローバルのDNSにも一行追記したが、伝達にしばらく掛かりそうだ。
と思ったら既に反映されていたことをAirHで確認。
あと、下手にぐぐるより、
本家に逝く方がまともな(日本語の:-) )
ドキュメントを拝めることも、また実感できた。
ring にミラーされるまで待てなかった。
特に新味はなさげ。.config をコピーして、make oldconfig しただけ。
bzImage は2.6.12.3より僅か小さくなっていた。
madwifiは思いきって cvs co してみた。でも、まだ試せる環境がない。
$ ls vmlinuz-2.6.12.* -rw-r--r-- 1 root root 1461116 Jul 20 04:41 vmlinuz-2.6.12.3 -rw-r--r-- 1 root root 1461082 Aug 7 07:57 vmlinuz-2.6.12.4
もう少しいらっておかないとageた意味が...
grantで嵌ったと思ったら、今度は、
privileges
を何度も間違い続けた。こりゃいかん。
しかも、puttyで
間違ったホストに
ログインしていた
事にも、ずっと気づかなかった。
だめじゃん。
インストールは途中まで特にエラーもでなかったが、いざデータベースに
接続しようとしたら画面
真っ白け。
接続に失敗している模様。
mysql(1)で覗いても、テーブルが作られている様子もなし。
改めてphpinfoと睨めっこ。
"configure command"の項目に'--without-mysql'とあり、
dbxの"supported databases"の項目にMySQLが含まれている。
何か忘れものなかったっけ。解凍したアーカイブの
ユーザ、グループは真っ先に変えているが。
# sudo -u $WWW /usr/bin/mysql -u$USER -p $DB Enter password:*********** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 to server version: 4.1.11-Debian_4sarge5-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> show databases; +----------+ | Database | +----------+ | $DB | +----------+ 1 row in set (0.00 sec) mysql> use $DB; Database changed mysql> show tables; Empty set (0.00 sec) mysql> \q Bye
phpが動かしてる筈の、MySQLのユーザがMySQLのデータベースに触れないわけでもないらしい。
う〜む。わからん。
ツッコミを受けて気力を取り戻し、再セットアップ。を2回繰り返し、データベースを1回
作り直し(指定したデータベースにテーブルが既にあると、インストーラは先に行かない)、
どうにかログイン画面にこぎつけた。
やれやれ。
OTPの記事を読み、LiveCDを貰って焼いて突っ込んでみた。 今のところ、KNOPPIXより優れたところがあるのかよくわからない。NTFSの マウントは、少なくともマウスクリックだけではできなかった。
やはりスリム(700MBって、デスクトップシステムには狭すぎるのだろうか)に
なるよう、色々工夫している様子だった。/usr/X11R6/binの下は
ほとんど何もなし。
LiveCDイメージを覗くと、
LFSのLiveCD同様(gentooもそうだったっけ?)
squashfsらしい。KNOPPIXの暖簾分けではないようだ。
もう少しつつく。あんだけアプリケーションを削ってるのに、なぜか
ゲームが一杯(という程でもないかも)。tuxracerまであったが、
起動させるとXが落ちた。
デフォルトのデスクトップはKDEだけど、Knoquerorを
すこしいじった程度では、日本語の表示はできなかった。
shutdownしても、まだちゃんと電源の落ちたマシンはない。
さっき
中央図書館から借りてきた
Apacheクックブックをめくる。
デスクトップに放りこんだapache-2.2.0を再度、
--enable-sslつきでmake install。
; 証明書作成 $ openssl genrsa -out hostname.key 1024 ; 証明書署名要求 $ openssl req -new -key hostname.key -out hostname.csr ; 俺々署名 $ openssl x509 -req -days 365 -in hostname.csr \ -signkey hostname.key -out hostname.crt
でもって、httpd.confもしくはそれにインクルードする ssl.confに追記。
SSLCertificateFile /http/conf/hostname.crt SSLCertificateKeyFile /http/conf/hostname.key
# apachectl configtestでOKが出たので、 Ethereal改めWireSharkでloをみながら firefoxでhttps://$HOSTNAME/ する。
お定まりの警告。証明書を飲んだら、httpsである
旨を告げるダイアログだけになった。
ロケーションバーが黄土色になって、"It works!"。
もちろん右下の南京錠は閉じている。
WireSharkのログを見たが、一応暗号化もできてるようだ。
とりあえずは、そこまで。
以前よりはすっきりしたかも。
kernel2.4の頃は常用していたはずだけど、 2.6に移行してからは # echo 4 > /proc/acpi/sleep とか やってた筈である。それもNoteを持ち歩くことが少なくなると、 $ sudo shutdown -h now ばかりになっていた。
Note(だけでなくデスクトップも)の起動/終了の迅速化を考えつつ、
適当にぐぐりながらあちこち見ているうちに、
懐かしい氷漬けのTuxに再会。
早速カーネルにパッチを当ててみた。2.6.21.1向けのパッチは、2.6.21.6に無事に当たったようだ。
お定まりのmake menuconfig。CONFIG_LOCALVERSIONなど、適当にオプションを付けたり
外したりしてからmake && make modules_install。
同じダウンロードサイトにあるHibernate Scriptを解包して./install.sh。
/usr/local/sbin/に入った hibernate(8)を打鍵すると、現在の設定を
ごりごりswapに書き入れて、電源Off。
少し待って電源を入れなおす。grubのメニューで同じカーネルを指定してやる
と、起動中にシステムは気づき、元の状態に戻る。効いているようだ。
スクリプトのインストールや実行時にgaim-remote がないとか警告が出てきた。
gaimを何に使うのか、まだ確認してない。
さて、noteのカーネルを入れ替えるときは、
Suspend2のパッチを当てて、fuseと、ntfs-3gと、madwifiとをそれぞれ
make installせねばならなくなった。cloopやsquashfsは、今しばらくは
要らないだろう、けど。
あーめんど。早くカーネルが吸収して
くれんもんかな(一部はそうなっているが)。
テーブルタップの違う差込口だと大丈夫だった。
怪しい差込口にルータなどを繋いでみたが、電源断する機種も、しない機種もあった。
テーブルタップを分解して確認したいところだが、十、一、六角、星型のどれでもない工具がないと駄目みたいだ。
まずはRIPv2。
apt-get install quagga してすぐ、お約束の update-rc.d -f remove quagga 。
PCを3台、それぞれに2枚のNICを挿す。
クロスケーブルでリング型に繋ぎ、NICに一つずつIPアドレスを割り当てる。
隣り合ったNICは同じネットワークアドレス(172.16.x.0/24)である。
その上で、特定ホストにのみブリッジで二つ(br0,br1)NICを作り、別々のIP
アドレスを当てる(172.16.1.1/24 に 192.168.1.1/24)。
/etc/quagga 配下のファイルを少し編集。
daemonz の zebra と rip の "no"を"yes"に変える。
ripd.conf に "network=172.16.0.0/16" を入れる。
んで、/etc/init.d/quagga start。
じきに直接つながってないネットワークが見えるようになった。
$ ip route show | grep zebra 172.16.1.0/24 via 172.16.a.b dev eth0 proto zebra metric 2 172.16.y.0/24 via 172.16.c.d dev eth1 proto zebra metric 2
br0 にリモートホストから ping を打ち続け、適当なタイミングで
最短のケーブルを一本引っこ抜く。
50秒近く経って"Destination Host Unreachable"と
なり、抜いてから3分近く過ぎた後に別ホストを経由して往復するようになった。
このとき、ip route show するとルーティングテーブルも変ったことが
確認できた。
ケーブルを挿しなおすと、5秒も経たずに元に戻った。
$ python3 Python 3.1.2 (r312:79147, Jun 17 2010, 22:23:31) [GCC 4.3.4] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> list(time.localtime()) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'time' is not defined >>> import date Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named date >>> import time >>> list(time.localtime()) [2011, 8, 7, 11, 21, 8, 6, 219, 0]
2.xでもエラーになったけど、 "import date"は何か間違えていたかも。
呟いたことはあったけど。
$ LANG=ja_JP.UTF-8 ncal
8月 2012
日 5 12 19 26
月 6 13 20 27
火 7 14 21 28
水 1 8 15 22 29
木 2 9 16 23 30
金 3 10 17 24 31
土 4 11 18 25
これは FreeBSD-10.0 Current も Ubuntu12.04も同様。
ubuntu$ ls -alFi /usr/bin/{n,}cal 12583030 lrwxrwxrwx 1 root root 4 7月 18 16:18 /usr/bin/cal -> ncal* 12583646 -rwxr-xr-x 1 root root 29704 3月 31 20:56 /usr/bin/ncal* freebsd$ $ ls -alFi /usr/bin/{n,}cal 1329642 -r-xr-xr-x 2 root wheel 24424 Jun 18 08:19 /usr/bin/cal* 1329642 -r-xr-xr-x 2 root wheel 24424 Jun 18 08:19 /usr/bin/ncal*
買っていじったことは
別ブログに書いた。
とりあえずはWebのアクセスログとか。
$IP - - [07/Aug/2013:21:03:05 +0900] "GET /~zuku/diary/images/\ 2013/06/increse.png HTTP/1.1" 200 68533 "http://www.kuzuore.com/~zuku/diary/" \ "Mozilla /5.0 (Linux; U; Android 4.0.4; ja-; MOONPhone Build/IMM76D) \ AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30"
RaspberryPI向けのクロスコンパイルを続けている
FreeBSD 11 CURRNETにて。
100000行のfizzbuzzはできた(実行もほとんど一瞬)
が,流石に 1000000行はちょっと
きつそうなので一旦諦める。
$ ls -lh total 27588 -rwxr-xr-x 1 user group 30K Aug 7 11:38 1000 -rw-r--r-- 1 user group 21K Aug 7 11:38 1000.c -rwxr-xr-x 1 user group 238K Aug 7 11:43 10000 -rw-r--r-- 1 user group 214K Aug 7 11:38 10000.c -rwxr-xr-x 1 user group 2.3M Aug 7 11:44 100000 -rw-r--r-- 1 user group 2.1M Aug 7 11:43 100000.c -rw-r--r-- 1 user group 22M Aug 7 11:45 1000000.c -rw-r--r-- 1 user group 419B Aug 7 11:37 print_fizzbuzz.py
Hello, World! の繰り返しも試したが、↑と同様、繰り返した回数分
実行ファイルが膨らむように見えた。
これも最後はコンパイルを諦めている。
-rwxr-xr-x 1 user group 7507 Aug 7 12:20 h10 -rw-r--r-- 1 user group 323 Aug 7 12:16 h10.c -rwxr-xr-x 1 user group 9348 Aug 7 12:20 h100 -rw-r--r-- 1 user group 2843 Aug 7 12:16 h100.c -rwxr-xr-x 1 user group 28245 Aug 7 12:20 h1000 -rw-r--r-- 1 user group 28043 Aug 7 12:17 h1000.c -rwxr-xr-x 1 user group 217254 Aug 7 12:20 h10000 -rw-r--r-- 1 user group 280043 Aug 7 12:17 h10000.c -rwxr-xr-x 1 user group 2107255 Aug 7 12:22 h100000 -rw-r--r-- 1 user group 2800043 Aug 7 12:21 h100000.c -rw-r--r-- 1 user group 28000043 Aug 7 12:22 h1000000.c
Firefoxのアドオン形式になっている。
とりあえず入れた。さしあたりAsia/Tokyoにする。
さらっとメニューを撫でる。
「軽い」のかもしれない(挙動は重くない)が、動作中PC
のファンがかなり五月蝿く鳴った。
比較的速いと思われる販売店前で。
回線の遅さとまた格闘。Pingを打ちながら
スピードテスト。一緒に読み込んだサイトの
SSL接続失敗が幾つも表示される有様。
ダウンロードのグラフ、そして
ダウンロード
と
アップロードのベンチ結果。
もっとも、このブログをこの回線で書くことはできたのだけど。
今度は時計を合わせて(UDP 123の通過を許してなかった)、pingの送信元と送信先
でtcpdump。
しながらfirefoxを起動して、そのままfacebookにログイン。
$ tcpdump -q -n -r send.cap | grep 'seq 50' 15:56:00.748167 IP $SEND_HOST > $RE_HOST: ICMP echo request, id 10120, seq 50, length 64 15:56:15.247155 IP $RE_HOST > $SEND_HOST: ICMP echo reply, id 10120, seq 50, length 64 $ tcpdump -q -n -r get.cap | grep 'seq 50' 15:56:15.130190 IP $SEND_GLOBAL_IP > $RE_HOST: ICMP echo request, id 10120, seq 50, length 64 15:56:15.130265 IP $RE_HOST > $SEND_GLOBAL_IP: ICMP echo reply, id 10120, seq 50, length 64
やはり、遅延は往路で大きく発生するように設定されている模様。
Tag VLAN複数設定。
イーサネットポート3つ用意。
アップリンクに当たるポートにVLANを2つ設定する。
ブリッジを2つ設け、VLANをそれぞれに一つ追加。
PCを接続するポートにはVLAN設定を行わずに個別にブリッジに追加。
$ sudo brctl addbr vlan_sw20 $ sudo brctl addbr vlan_sw30 $ sudo ip link add link eth0 name vlan20 type vlan id 20 $ sudo ip link add link eth0 name vlan30 type vlan id 30 $ sudo brctl addif vlan_sw20 vlan20 eth2 $ sudo brctl addif vlan_sw30 vlan30 eth3
VLAN、bridgeを含め、各デバイスはip link set DEV upしておく。
$ sudo brctl show bridge name bridge id STP enabled interfaces vlan_sw20 8000.XXXXXXXXXXXX no eth2 vlan20 vlan_sw30 8000.YYYYYYYYYYYY no eth3 vlan30
ip a など叩くとデバイスが8つ出てきた(lo, eth0, eth2, eth3,
vlan_sw20, vlan_sw30, vlan20@eth0, vlan30@eth0)。
Windows PCをeth2に繋いだ場合と、eth3に繋いだ場合とで
違うLANに加わる(eth0の彼方にあるdhcpサーバにより、
違うネットワークアドレスを振られる)
ことを確認。
とりあえずansibleで使い捨てサーバに追加。
apache2の設定も少し追記して無事アクセス。
絶えず狙われており、
また脆弱性も
よく炙り出されている模様。
少なくとも、インストール時に指定したIP(v4)からの
アクセスのみ許すように設定してから、
スクリーンショット機能が使いたくなったので ダウンロードしてしまった。
タイムラプス撮影(1/5s)しながら、ストレージが
不足気味なのでsshfsで一部をPCにmvし、
syncしたりdfしたりする全体をiostatで撮ってみた。
iostat自体の書き込みも多分、その中にあるはず。
$ iostat -y -x 1 -d /dev/mmcblk0p2 | tee iostat
思ってたほどキツい様子は出なかった、かも。
既にあるかもしれないが、探すのも面倒になって、 とてもめんどくさいシェルスクリプトになった。
$ sh two_times.sh 20200926_01.png 20210504_03.png 2020-09-26 10:35:04.774240678 20200926_01.png 2021-05-04 23:58:46.831895095 20210504_03.png 220 日の差があります
とりあえず動くけど、まだおかしな処理があちこちあるはず。
少なくともRasPi3では、撮影時刻がけっこうずれている。
スムースに動いているタイムラプス動画が、時折ガタつくことに
気づいてからは専らPCでやっていた。
久々にPi3で撮って思い出したので、確認。
撮影時刻の吸い出しは、どのくらい待たされてるのか、
それが反映されているのか不明なタイムスタンプでなく
exifから。
カメラの内蔵時計がずれていても、撮影のたびにずれが
大きく変わることは、たぶん無いだろう、という読みで。
$ for file in *.jpg; do exif -m $file | \ grep オリジナル | awk '{print $4}' >> dfile; done
これで撮影時刻一覧が取れた。
#!/bin/sh for id in `cat dfile`; do new=`date --date "$id" "+%s"` if ! [ -z $oid ]; then comp="`echo $new - $oid | bc`" echo 'comp: '$comp >> interval fi oid=$new done
さきほどの 荒い使い方がこたえたのか、 実際のインターバルは、5秒でないのが結構あった。
$ wc -l interval 719 interval $ grep -vc 'comp: 5' interval 140 $ grep -v 'comp: 5' interval | sort | uniq -c | sort 1 comp: 13 1 comp: 25 1 comp: 27 2 comp: 22 2 comp: 23 4 comp: 15 5 comp: 11 5 comp: 14 7 comp: 10 7 comp: 9 8 comp: 1 8 comp: 8 9 comp: 2 10 comp: 12 13 comp: 7 16 comp: 3 17 comp: 6 24 comp: 4
Rのグラフ向けにデータを整える。
$ awk 'BEGIN{print "Time Sec"}{print NR, $2}' interval >total
撮影時刻は年から秒までだったが、シェルスクリプトで
日付と時刻の間のスペースをうまく処理できなかった。
さしあたり同じ日ということで時刻だけにする。
部分拡大すると、遅れを取り戻すために急いでいる、ような 感じにも見えたり。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。
※ eno [ブラウザからアクセスしてインストールのところでしたら、私も一晩はまりました。 # apt-get install ..]
※ kuzu [ツッコミどうもです。 再起動とアーカイブの再セットアップで通りました。 日頃の行いが災いしたようであります:-(]