トップ «前の日(01-29) 最新 次の日(01-31)» 追記

屑俺日記

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


2005-01-30(Sun) 朝もはよから

kernel2.4.29

を make oldconfig から鯖に入れた。uptimeは一月を越えたし、頃合だろう。

をとといに続き

$ echo chaddr $OLDACCONT $NEWACCOUNT | mail $FML_ML-ctl@domain.tld 。

Xとcron

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 して、蹴ってはならなかったメールを確認する。一件あったが、自分が 放ったものらしい。とりあえずはよしとするか。

AirH再び

プロバイダのページやpdfと睨めっこして、スクリプトと格闘したが 認証でコケるので、諦めてpppsetup再実行。で、できたppp-onで 接続してみた。最初の一回は接続できたものの、/etc/resolv.confに 指定したDNSサーバは、pingには(遅れて) 応答はするものの、名前解決を やってくれなかった。etherealで眺めていると、応答なしだった。
一旦接続を切って繋ぎ直すと、今度は何事もなかったが如く正常動作。 とりあえずメール送受信を確認。んでsshすると@(ry


2006-01-30(Mon) 再生なるか

結局セキュアに

しなかった。
FreeBSD-5.4のカーネルをビルド。 options IPFIREWALL_DEFAULT_TO_ACCEPT する。
シリアルから 入り、screenをあげてmakeし、 端末を落して放置。

しばらく放

置気味の ↑FreeBSD-5.4をcvsup。そして make buildworld。
Celeron2GHz+512MBで20分程。

ついでに、confに"device tap" を加えてみた。

6.0 on 5.4

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

でおしまい。

例の事故を思い出して

FreeBSDでもリモートから # kill -9 `ps aux |awk '{print $2 }'` やってみたが、 "-su: kill: PID: arguments must be process or job IDs" と一蹴されただけで、一般ユーザに戻されておしまい。


2007-01-30(Tue) めんど

根こそぎ?

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

ちなみに、昨日は一度も来ていない。
気まぐれの一種ならんか。


2008-01-30(Wed) あおくあかく

差分管理ことはじめ

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が見つかった。

modifyvm

VirtualBoxの仮想マシン設定変更。
"電源オフ"に対して実施のこと。

$ $ vboxmanage modifyvm winxp3 -hostifdev1  winxp3
VirtualBox Command Line Management Interface Version 1.5.4_OSE
(C) 2005-2007 innotek GmbH
All rights reserved.
 

管理メニューを立ち上げた状態で、端末からこれをやると、 そちらの表示も自動で変化する。


2009-01-30(Fri) くもり後

acpid-1.0.8

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 でも同様。

/usr/bin/plog

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

ddclient(8)

ダイナミック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)。
これっぽい気がするが、追試は来週以降だろうな。

find(1)

ちょこちょこ。

/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 か。

KNOPPIX-6.0

ともかく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 すると、なかなか壮観だった。

全部頂戴したが、もうしばらく放置しておこう。


2013-01-30(Wed) 昨日から若干温度高め

かなりおバカなfizzbuzz

例によって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 など付けてみたが、いずれも有意差なしだった。


2014-01-30(Thu)

ストリーミングうまくいった

Stream Video

RaspberryPiのカメラモジュールで、 以前うまくできなかったが 今日ようやくできた。
カメラが横倒しだったので、画像も90度ひっくり返っている。
コマンドは変えていない。

$ raspivid -o - -t 9999999 | \
  cvlc -vvv stream:///dev/stdin \
  --sout '#rtp{sdp=rtsp://:8554/}' \
   :demux=h264

VLC側ではrtsp://$SERVER:$PORT/ で、URLの 末尾に"/"が要った。
やっぱりUbuntu側の問題だったかも。

遅延色々

delay between two clock

秒針のついた時計をデスクトップに表示し、それをストリーミングして 、どのくらい遅延するか試す。
写真の一番右がアプリケーションで、左二つはストリーミング画像である。
この時は10秒あったが、場合によって30秒以上だったり5秒程度だったりと、 かなりぐらつきがあった。

WN-G150UK

USB無線子機。使用目的から見て、少し大きすぎる気もしたが、 千円ちょっとで、消費電力が最大170mAとあったので購入。
買ってから気づいたが、「※ Windows 8ではご利用いただけません。」 と小さい字で注意書きがあった。
今のところRaspbianでしか、動作確認してなかったりする。


2015-01-30(Fri) 雨はじきにやんだけど、寒いまま

スワップファイルだけでなく色々。

まあ慣れだ。

$ 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。

clangも結構煩い

cc -Weverything で難解バカボンをビルドすると、 最後まで通しては くれなかった


2019-01-30(Wed) 明日は雨らしいが

USB Type-C にて Androidテザリング

Win7とStretchで確認。
iPhoneのときとさほど違わない。
強いて言えば、引っこ抜いたら自動でOffになることくらいか。

某Androidでアクセスすると

$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" 

$HOMEの暗号化

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や内容が変った場合はあしからず。

index.htmlは ここから。