僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
を make oldconfig から鯖に入れた。uptimeは一月を越えたし、頃合だろう。
$ echo chaddr $OLDACCONT $NEWACCOUNT | mail $FML_ML-ctl@domain.tld 。
crontab.txtに * * * * * DISPLAY=localhost:0.0 command と書くのがミソ。それから終了手段もcronに入れておかないと 当然、実行結果は累積する。
設定を一昨日位からずーっと狂わせていたことに気づく。 smtpがwebサーバに、sshが(webサーバでなく) メールサーバにforwardしていた。 気づいたきっかけはAirHでsshしたときに@に包まれた警告が出たこと。 改めてsshログインしてみたらmotdと$PS1も違っていた。 すぐAirHを切り、LANに戻ってルータの設定画面にw3mを飛ばす。 設定を元に戻し、携帯からメールを一本打って確認。
そういえばメールサーバのcronから来る手紙のsmtpdログ、ここ2、3日えらく 少なかったっけ、なんて笑ってる場合じゃない。ログをgrep reject して、蹴ってはならなかったメールを確認する。一件あったが、自分が 放ったものらしい。とりあえずはよしとするか。
プロバイダのページやpdfと睨めっこして、スクリプトと格闘したが
認証でコケるので、諦めてpppsetup再実行。で、できたppp-onで
接続してみた。最初の一回は接続できたものの、/etc/resolv.confに
指定したDNSサーバは、pingには(遅れて) 応答はするものの、名前解決を
やってくれなかった。etherealで眺めていると、応答なしだった。
一旦接続を切って繋ぎ直すと、今度は何事もなかったが如く正常動作。
とりあえずメール送受信を確認。んでsshすると@(ry
しなかった。
FreeBSD-5.4のカーネルをビルド。
options IPFIREWALL_DEFAULT_TO_ACCEPT
する。
シリアルから
入り、screenをあげてmakeし、
端末を落して放置。
置気味の
↑FreeBSD-5.4をcvsup。そして
make buildworld。
Celeron2GHz+512MBで20分程。
ついでに、confに"device tap" を加えてみた。
qemuを8.0に上げて、FreeBSDの上にFreeBSDを入れてみる。
それにしても -nographic でセグメント違反になるのは
なぜだ。
[*]Developerなんか選ぶ必要はなかったかも。
1024MBでは小さ過ぎ。1536MBでも不足気味に思えた。3GB用意する。
/varが1GBも必要になるとは信じられない...
まだ足りない。パーテーションを手動で切り直し、[*]Kern-Developerに変える。
FreeBSDでqemuのネットワークほにゃらら。
Linuxではtunデバイスを使った。で、
/etc/qemu-ifupをsudoで実行できるよう手配し、
ゲストOSをtunNUMと同じネットワークに入れてやる。
そしてホストOSへのゲートウェイにtunNUMを設定すれば良かった。
他のホストなら、ホストOS(のip_forwardを1にして、
それ)をゲートウェイにすれば良かった。
以上、忘れかけた事に気付き、起動させて記憶に書き戻す。
さて、FreeBSDで同じ方法がどうもいまいち。
ぐぐると、tapデバイスを使うらしい。具体的
には、
# kldload bridge.ko # sysctl net.link.ether.bridge_cfg=fxp0,tap0 # sysctl net.link.ether.bridge.enable=1 # cat /etc/qemu-ifup #!/bin/sh ifconfig ${1} 0.0.0.0 # chmod 755 /etc/qemu-ifup # qemu -net nic -net fxp0 -hda boot.img
とかになるらしい。そして ゲストOSにホストOSと同じネットワークに 加えればいいようだ。で(なんか非常に 遅く感じられるが)ともかくpingにtelnet などで きた。
sudoしたり、/dev/tap*をいらったりしたにも 関わらず、 すーぱーゆーざじゃないと起動できないのは なんで?
一般ユーザ権限のXからrootでもってqemuを起動させると、
瞬時に真っ暗になった。そしてBIOSのメモリカウント...
いやなんとも簡単に死ぬものだ。
PlamoLinuxでも同様に試したが、
# qemu boot.img Connected to host network interface: tun0 Could not initialize SDL - exiting
でおしまい。
Server$ grep "e-SocietyRobot" $ACC_LOG_TODAY | wc -l 721
Apacheのログからロボットのアクセス時刻を抜き出し、一時間ごとに統計をとってみる。
朝6時から夕方6時まで、幾度も押し寄せて来ている。
Server$ grep "e-SocietyRobot" $ACC_LOG_TODAY \ cut -f 2 -d":" | uniq -c 52 06 76 07 76 08 78 09 77 10 84 11 66 12 81 17 131 18
ちなみに、昨日は一度も来ていない。
気まぐれの一種ならんか。
svnやgitなど、でかいものにいきなり飛びついても手が追いつかない。
まずはRCSから。以下、
Linux サーバHacksより。
; 格納ディレクトリ用意 # mkdir RCS ; 編集対象をリポジトリに格納。カレントディレクトリより削除。 # ci -i $FILE ; 編集対象を取り出す。 # co $FILE ; 編集対象をロック(他ユーザの編集防止) # co -l $FILE ; 編集後にロック解除とリポジトリ更新 # ci -u $FILE
昨日の例。
lenny:/etc/init.d# rcsdiff -r1.1 virtualbox-ose =================================================================== RCS file: RCS/virtualbox-ose,v retrieving revision 1.1 diff -r1.1 virtualbox-ose 127c127 < if expr match "$1" "vbox[0-9][0-9]*$" > /dev/null 2>&1 --- > if expr match "$1" ".*[0-9][0-9]*$" > /dev/null 2>&1
ぐぐると RCS FAQが見つかった。
VirtualBoxの仮想マシン設定変更。
"電源オフ"に対して実施のこと。
$ $ vboxmanage modifyvm winxp3 -hostifdev1 winxp3 VirtualBox Command Line Management Interface Version 1.5.4_OSE (C) 2005-2007 innotek GmbH All rights reserved.
管理メニューを立ち上げた状態で、端末からこれをやると、 そちらの表示も自動で変化する。
Plamo-4.51で試してみた。
やったことは
ぐぐって真っ先に出たページの通り。make install して、
/etc/acpi/events/power に
event=button.power.* action=/sbin/poweroff
で、acpid を起動して、電源ボタンを押すと
"The system is going down for system halt NOW!"。
やがて電源断。
LFS-6.4 なNote でも同様。
etch でPPPoE の設定をしてたら、statusは "plog" で
確認できるとか、そんなメッセージが出た。
man -w plog したら、/usr/share/man/man1/pon.1.gz
と出た。
# plog Jan 30 09:55:51 etch pppd[2626]: Using interface ppp0 Jan 30 09:55:51 etch pppd[2626]: Connect: ppp0 <--> eth3 Jan 30 09:55:52 etch pppd[2626]: PAP authentication succeeded Jan:XX:XX:XX:XX etch pppd[2626]: peer from calling number \ XX:XX:XX:XX:XX:XX authorized Jan 30 09:55:52 etch pppd[2626]: Cannot determine ethernet \ address for proxy ARP Jan 30 09:55:52 etch pppd[2626]: local IP address $LOCAL Jan 30 09:55:52 etch pppd[2626]: remote IP address $REMOTE Jan 30 09:55:52 etch pppd[2626]: primary DNS address $DNS1 Jan 30 09:55:52 etch pppd[2626]: secondary DNS address $DNS2
# cat `which plog` #!/bin/sh if [ -s /var/log/ppp.log ]; then exec tail "$@" /var/log/ppp.log else exec tail "$@" /var/log/syslog | grep ' \(pppd\|chat\)\[' fi
ダイナミックDNSを更新させるPerlスクリプト。
etch にapt-get すると、ncursesな設定画面が出た。
必要事項を記入して実行してみたが、認証に失敗して
撥ねられる。
# ddclient --verbose WARNING: file /etc/ddclient.conf, line 10: assignment ended with an open quote WARNING: file /etc/ddclient.conf, line 10: assignment ended with an open quote INFO: setting IP address to $SOME_IP for $MYDOMAIN.TLD UPDATE: updating $MYDOMAIN.TLD CONNECT: $DDNS.TLD CONNECTED: SENDING: GET /nic/update?system=dyndns&hostname=$MYDOMAIN.TLD&myip=$SOME_IP HTTP/1.0 SENDING: Host: $DDNS.TLD SENDING: Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXX SENDING: User-Agent: ddclient/3.6.7 SENDING: Connection: close SENDING: RECEIVE: HTTP/1.1 200 OK RECEIVE: Date: Fri, 30 Jan 2009 02:07:49 GMT RECEIVE: Server: Apache RECEIVE: Content-Type: text/plain RECEIVE: Connection: close RECEIVE: RECEIVE: badauth FAILED: updating $MYDOMAIN.TLD: badauth: Bad authorization (username or password)
/etc/ddclient.conf を見ると、十行目が
"password='PASSWD'"となっていた。
パスワードに英数字でない記号("%"と"#")を含んでいたのが敗因だったようだ。
"'"を外したり、"\#"したりしてみたが、全然効き目がなかった。--verbose を付けても
何もエラーメッセージを吐かずに失敗(更新は反映されず、"$?"が"1")したりする。
パスワードを(Webサイトにログインして、そっちから)変える以外、対処法が見当たらなかった。
/etc/ddclient.conf も貼っとくとするか。
pid=/var/run/ddclient.pid protocol=dyndns2 use=if, if=ppp0 server=members.dyndns.org login=$LOGIN password=$PASSWD $MYDOMAIN
追記(2009/1/31)。
これっぽい気がするが、追試は来週以降だろうな。
ちょこちょこ。
/var/log$ find . -amin 5 ./lastlog ./faillog /var/log$ date 2009年 1月 30日 金曜日 15:32:17 JST /var/log$ ls -l `find . -amin 5` -rw-r--r-- 1 root root 24024 2009-01-30 15:27 ./faillog -rw-rw-r-- 1 root utmp 292292 2009-01-30 15:27 ./lastlog
date ; find . -amin 5 -exec ls -l {} \; の方がよさげ。
いや、date ; find . -amin 5 | xargs ls -l か。
ともかくbittorrent。
----------------------------------------------------------- | size: 680,609,008 (649.08 MiB) | | dest: /$DIR/KNOPPIX_V6.0-ADRIANE_V1.1CD-2009-01-27-EN | | progress: #______________________________________________ | | status: finishing in 0:44:51 (5.6%) | | dl speed: 332.6 KB/s | | ul speed: 1.1 KB/s | | sharing: 0.003 (0.1 MB up / 36.2 MB down) | | seeds: 33 seen now, plus 2.994 distributed copies | | peers: 7 seen now, 51.6% done at 725.4 kB/s | -----------------------------------------------------------
seeds はまもなく100を越えた。
キャプチャしたパケットを sort|uniq -c |sort -nr すると、なかなか壮観だった。
全部頂戴したが、もうしばらく放置しておこう。
例によって1から100まで。
流石に全部printf("1\n2\nfizz\n...98n\fizz\nbuzz\n")
ではないが、それに近いのをCで。
#include<stdio.h> int main() { int i; #define LIMIT 100 for(i=0; i<LIMIT; i+=15) { printf("%d\n", i+1); printf("%d\n", i+2); printf("fizz\n"); printf("%d\n", i+4); printf("buzz\n"); printf("fizz\n"); printf("%d\n", i+7); printf("%d\n", i+8); printf("fizz\n"); printf("buzz\n"); if(i+15 > LIMIT) { break; } printf("%d\n", i+11); printf("fizz\n"); printf("%d\n", i+13); printf("%d\n", i+14); printf("fizzbuzz\n"); } return 0; }
次項を書いたとき、少しだけ書き直している。
さっきのfizzbuzzを100000000回まで増やしたバージョンを作成し、
ノーマルなfizzbuzz(下記)と、Raspbian上で比較してみた。
結果(ざっと701MB)が同一になるらしいことは sha1sum(1) で確認している。
#include<stdio.h> int main() { int x; for(x=1; x <= 100000000; x++) { if(! (x%3)) printf("fizz"); if(! (x%5)) printf("buzz"); if(x%3 && x%5) printf("%d", x); printf("\n"); } return 0; }
$ time ./normal_fizzbuzz > /dev/null real3m28.469s user3m27.920s sys0m0.300s real3m28.469s $ time ./fifi_fizzbuzz > /dev/null real2m35.261s user2m34.840s sys0m0.200s
75%くらい高速になったみたい。ちなみにx86_64のUbuntu(Core i5)
でも9秒弱に6秒強で、傾向としてほぼ同じ。
gcc でコンパイルオプションを -O3 など付けてみたが、いずれも有意差なしだった。
RaspberryPiのカメラモジュールで、
以前うまくできなかったが
今日ようやくできた。
カメラが横倒しだったので、画像も90度ひっくり返っている。
コマンドは変えていない。
$ raspivid -o - -t 9999999 | \ cvlc -vvv stream:///dev/stdin \ --sout '#rtp{sdp=rtsp://:8554/}' \ :demux=h264
VLC側ではrtsp://$SERVER:$PORT/ で、URLの
末尾に"/"が要った。
やっぱりUbuntu側の問題だったかも。
まあ慣れだ。
$ dd if=/dev/zero of=filename bs=num time=num $ sudo mdconfig -a -f filename md${NUM} $ sudo swapon /dev/md${NUM}
crochet-freebsd(srcとportsの 下も用意させておいた)で作ったディスクを 起動させ、ports で色々ぶちこんだ。
$ pkg info | wc -l 24 $ ls /usr/local/bin | wc -l 114
インストールを意識したのはbashとtmuxとsudo
くらいなのだけど。
/etc/localtimeをコピーし、ntpも
起動するようにし、LANGとTERMも
やって、スワップファイルを1GB作成し、
ほぼ満を持して、
time sudo make buildworld。
Win7とStretchで確認。
iPhoneのときとさほど違わない。
強いて言えば、引っこ抜いたら自動でOffになることくらいか。
$IP - - [30/Jan/2019:10:21:00 +0900] "GET /misc/documents/old.html HTTP/1.1" 200 4967 "https://www.kuzuore.com/" "Mozilla/5.0 (Linux; Android 8.1.0; S3-SH) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.99 Mobile Safari/537.36"
vagrant+libvirt(kvm-qemu)環境下のstretchでもって、 debian wikiの通りにやってみた。
$ sudo ecryptfs-migrate-home -u $ENC_USER INFO: Checking disk space, this may take a few moments. Please be patient. INFO: Checking for open files in /home/$ENC_USER
でしばらく待たされる。やがて ログが ひとしきり流れた(ファイルの一部を省略)。
暗号化するユーザでログインしないことは分かったが、
ecryptfs-unwrap-passphrase(1)にちょっと嵌った。
パスワードを入力すると、パスフレーズが出てきた。
man 見ると、標準入力から指定もできたようだけど。
vagrant reload の後、データの暗号化されたユーザに
なってみた。ログインにわずかもたつく以外、
何も変ってないように見えた。
スーパーユーザで、そのユーザの $HOME を見てみる。
$ sudo ls -l /home/$ENC_USER total 0 lrwxrwxrwx 1 $ENC_USER group 56 Jan 30 14:52 Access-Your-Private-Data.desktop -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop lrwxrwxrwx 1 $ENC_USER group 52 Jan 30 14:52 README.txt -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.txt
暗号化されたユーザのホームディレクトリの実体は、
/home/.ecryptfs/$ENCRYPTED_USER/.Privateの下にあった。
なにやら長たらしいファイル/ディレクトリがぞろぞろ。
詳しくは見てないが、暗号化しても隠せない情報いくつかに気づく。
ファイル単位で暗号化しているためか、暗号化してもファイル/ディレクトリの数は同じ。
ファイルのタイムスタンプも同じ。ディレクトリ構成も見えてしまう。
中身の違う、同じサイズのファイルは、やはり同じサイズの暗号化ファイルになる。
もちろん、中身の同じファイルは、それぞれ違う中身に暗号化される。
さて、元に戻すには。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。