僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
at(1)を試す。前回はLinuxで、atd(8)が起動
していればどのユーザでも実行できる模様だったが、
今度は、そんなデーモンはない(らしい)。
また /var/at/at.allowに名前が無ければ$ at foobarしても、即座に
"at: you do not have permission to use this program"。
空っぽの /var/atd/atd.denyがあれば↑と同様だけど、そうするべきかは
疑問。
あと気づいたこと若干。
FreeBSD(4.11,5.3)では at(1)もbatch(1)もls -iは同じだった。
linux では batch(1)はat(1)を実行する
シェルスクリプトだった(PlamoLinux4.0とDebian/GNU Linux3.0で
確認)。
NetBSD1.6.2ではデフォルトで空っぽの/var/at/at.denyがあった。
manpageにもそれが、そしてその意味するところが明記してあった。
ついでにMacOSXもつついてみたが、atとbatchのiノードが違う(ファイルサイズ
は同一なのに)事を除いて FreeBSDと同様。
って何だ?ぐぐると、受信データをただ破棄するだけ、と解説して いるサイトがあった。言及されているRFC863を見たが、
A useful debugging and measurement tool is a discard service. A discard service simply throws away any data it receives.
これでは何のための仕様なのか全然掴めない。で、さらにぐぐると comp.protocols.tcp-ipの過去ログ(といっても1983年じゃない。今年のだ)が ヒットした。スレッド化されてないので辿りにくかったが、 19333の質問(自分と瓜ふたつの疑問)からいくつか対話が続いている。 とはいっても、最初の答えである19335 以外は、あまりよくわからなかったが。リンク切れに備えてコピペしとこ。
That's the protocol I usually use when using ttcp to perform throughput tests. Since you're just testing the network, you don't need the receiver to do anything with the data, so sending it to the discard service is the most obvious thing to do. It's the network equivalent of /dev/null.
ちなみに回答者の名前でぐぐるとschemeのFAQとか、色々なNewsの過去ログとか
がヒットした。MITのアカウントは伊達ではない。
さらに脱線(どこから?)。
$ ls -l | telnet DEBIAN 9 Trying XXX.XXX.XXX.XXX... Connected to DEBIAN. Escape character is '^]'. Connection closed by foreign host. $ dd if=/dev/zero of=zero.dat bs=1024k count=10 読み込んだブロック数は 10+0 書き込んだブロック数は 10+0 $ ls -l zero.dat -rw-r--r-- 1 USER GROUP 10485760 3月 12日 02:44 zero.dat $ cat zero.dat | telnet DEBIAN 9 Trying XXX.XXX.XXX.XXX... Connected to DEBIAN. Escape character is '^]'. telnet: buffer overflow, losing data, sorry telnet: ring.cc:143: int ringbuf::flush(): Assertion `top-bot > 0 \ && top-bot <= count' failed. アボートしました
ふむ。なにかまずかったかな。 etherealで追っかけていると、telnetが落ちるまで1万近くのパケットが飛び交っていた。 etherealの他いくつかの重そうなアプリを閉じると、落ちなくなった。
あと、DebianやFreeBSDなどで同様の実験をlocalhost 宛に投げてみた。 DebianではinetdのCPU負荷が30%以上、telnetが 50%以上で続いた。 FreeBSDではinetdのCPU負荷はほとんどなく、telnetの負荷が90%以上だった。 条件はバラバラなので、あくまで一例だけど、ベンチマークとしても 面白そうだ。
apache-sslやpostfixなどを放りこんで、動作確認。 改めてnmapで砲撃すると、何時の間にか色々開いていた。
$ nmap Debian Starting nmap 3.55 ( http://www.insecure.org/nmap/ ) at \ 2005-03-12 01:20 JST Interesting ports on Debian (XXX.XXX.XXX.XXX): (The 1653 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 9/tcp open discard 13/tcp open daytime 22/tcp open ssh 25/tcp open smtp 37/tcp open time 80/tcp open http 443/tcp open https
$ telnet debian $NUM でいくつか試す。
daytimeは日時がピョン。timeは読めねぇ。
続けた。
大きいパッケージを消して、デフォルトのrunlevelを2にし、
シリアルポートを開き...は、全く変らない。
あ、ln -s /etc/init.d/ssh /etc/rc2.d/S20ssh も
効いたはずだ。
kde関連をちまちま...も同様。ただしkdebluetoothとか に手をつけないよう注意する。
今日、いきなり外からsshで全然入れなくなった!のは、FreeBSDの
NAPTのせいじゃない。
~/.ssh/authorized_keysから不要としか思えなかったものを
消し過ぎたせいだ。
手元のPCだけ復活させて、一息。
某MLに初めて メールを送信した。
まず、送信先らしきメールサーバからdefferd。
Mar 12 23:35:01 SERVER postfix/smtp[6367]: $ID: to=<knoppix@freeml.com>,\ relay=ml.freeml.com[210.172.140.106], delay=4, status=deferred \ (host ml.freeml.com[210.172.140.106] said: 450 Rcpt to \ <knoppix@freeml.com> - Temporary local problem - try later \ (in reply to RCPT TO command)
あまり待つ気になれず、20分後にpostqueue -f してやった。
すると、MLから届いた、番号付きのメールに続いて、自分のメールメッセージを
同梱したエラーメールが一秒ずつ遅れて2通も来た。
XXXXX@yahoo.co.jp XXXXX@gmail.com ----- Transcript of session follows ----- ... while talking to [210.168.199.30]: >>> DATA <<< 554 Error: too many hops 554 Service unavailable
ぐぐると、どうやら転送のやり過ぎらしい。
Postfixのデフォルト(50)では小さ過ぎるのか。
こっちの知ったことか!と言いたくなるのを抑えて、main.cfを編集。hopcount_limitで設定するようだ。
とりあえずは101にしておこう。それからpostfix reload。
GMailとYahooに各一通届かなかったようだが、...
まぁいいか(こら
あと、自サーバのドメイン認証とかも考えないと、いずれはどこにも送れなく
なってしまいそうだ。
プロバイダのメールサーバにrelayうんちゃらなどやりたくない
(自分で運用する意味なし)し。
WindowsVista Business Premium。
既出な気もするが、なんとなく。
ALLUSERSPROFILE=C:\ProgramData APPDATA=C:\Users\user\AppData\Roaming CommonProgramFiles=C:\Program Files\Common Files COMPUTERNAME=VISTA ComSpec=C:\Windows\system32\cmd.exe FP_NO_HOST_CHECK=NO HOMEDRIVE=C: HOMEPATH=\Users\user LOCALAPPDATA=C:\Users\user\AppData\Local LOGONSERVER=\\VISTA NUMBER_OF_PROCESSORS=1 OS=Windows_NT Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER=x86 Family 6 Model 10 Stepping 0, AuthenticAMD PROCESSOR_LEVEL=6 PROCESSOR_REVISION=0a00 ProgramData=C:\ProgramData ProgramFiles=C:\Program Files PROMPT=$P$G PUBLIC=C:\Users\Public SESSIONNAME=Console SystemDrive=C: SystemRoot=C:\Windows TEMP=C:\Users\user\AppData\Local\Temp TMP=C:\Users\user\AppData\Local\Temp USERDOMAIN=VISTA USERNAME=user USERPROFILE=C:\Users\user windir=C:\Windows
ワークグループ名は出ないのかなぁ。
JFより。
$ for beep in `seq 300 100 1000`; \ do echo -e "\\33[10;$beep]\\33[11;100]" \ > /dev/tty1 ;\ echo -e "\a" > /dev/tty1 ; \ sleep 1; \ done
てっきりシェルの内部コマンドとばかり思ってた。
$ date ; sleep 1.5; sleep 1.5; date 2008年 3月 12日 水曜日 10:39:19 JST 2008年 3月 12日 水曜日 10:39:22 JST
日本語マニュアル(GNU Shell Utilities 2.1)には載ってなかったが、
LANG=C で改めて確認すると、"Unlike most implementations
that require NUMBER be an integer, here NUMBER
may be an
arbitrary floating point number." とあった。
なんか微妙な気がする。
$ sleep --help すると、"指定する数字は整数だけでなく, 小数でも構いません." と出た。
ちなみにFreeBSD-6.3のsleep(1)も似た記述があった。
"This is a non-portable extension," と断っていたが。
こちらはGNUとは違い、1mとか2hとか3dとかには対応しないようだ。
数字やピリオド以外をくっつけても無視する。
実装の説明はsleep(3)とかnanosleep(3)とか(Linuxはセクション2に
なっている)。混乱してきたので、これだけ。
IDE-3525 vs KD25/35PRO。
IDE の方は2.5/3.5形のIDEのみ。ただし光学ドライブ
などもつけられるようだ。
KDの方はIDE以外にもSATAにも対応する。でも光学ドライブ
は駄目だった。
専用性ならIDEが、汎用性ならKDというところだろうか。
/dev/urandomを10GBばかり、同じディスクに
dd してみたが、どちらも5分ほどで、
有意差は見えない。
もうちょっと色々やってみないと。
改行削除の続き。
tr(1)で決着がついたようだ、多分。
$ cat foo.txt First * /* *** *Second* Third
$ cat foo.txt | tr -d "\n" ; echo "" First*/*****Second*Third $
$ time /bin/ls /usr/bin/* > /dev/null real 0m0.130s user 0m0.107s sys 0m0.023s
これは別に不思議でもなんでもない。だけど、
$ time ls /usr/bin/* > /dev/null real 0m52.092s user 0m51.457s sys 0m0.453s
特に重い処理はやってない。Xさえ立ち上げてない環境で
数回繰り返して、ほとんど同じ結果を得た。
別端末でtopを表示してみると、実行しているbash(と同じプロセスIDのbash)
がCPUの60-99%程度を上下している。
unset -f ls すると、/bin/ls と変らなくなった。
unalias ls とやっても無駄だった。
Plamo-4.6以降いくつかで確認。DebianやFreeBSDなどでは
再現せず。
$ alias ls alias ls='ls $LS_OPTIONS' $ type ls ls is aliased to `ls $LS_OPTIONS'
$ unalias ls $ type ls | wc -l 48
@IT にある、 シェルの組み込みコマンドを調べるには が参考になった。
するスクリプトを 書いてみた。呟きスクリプトから 認証を外し、解析部分にいくらか手を入れる。
$ search.sh sato_makoto 2010-03-04T****:**Z : USER1 ($USER1) 誰かの呟き @sato_makoto の発言 2010-03-04T**:**:**Z : $USER1 ($USER1) @sato_makoto 誰かからのメッセージ 2010-03-06T**:**:**Z : USER2 ($USER2) 誰かの呟き QT @sato_makoto 自分の呟き //以下、略
"2010-03-12-01:02:03Z"などと表記される。
なんか世界時っぽいが、実のところよくわからない。
そろそろgitか何かでサーバを立てようか
太陽電池内蔵。明るいところで回る。
どこにも型番が表示されていない。多分
これと思われたが、類似品は多いようだ。
折り紙など軽いものなら蛍光灯下でもOKらしいが、
頑丈な箱に入れたRasPI Bにカメラモジュール、そしてバッテリとなると、
日当たりの良い所の近く、がやっとであった。
タイムラプスの連続撮影には回転速度速すぎ。
一周を少し過ぎる間隔で連続撮影という
形になりそう。
カメラも載せて、「早送り動画」を試したが、 やはり速すぎる。また、 試用結果を確認すると、過積載のためか否か、 回転速度は一定でないように見える。
RaspberryPi B とカメラモジュールによる タイムラプス(どっかに和訳記事あったような) を試みたのは、 2月14日 のことであった。らしい。
10秒ごとに一枚程度の写真を400枚( 最初の一枚と 最後の一枚 )撮って合成。パラメータを適当に変えて若干の試行錯誤。
$ cat enc.sh #!/bin/sh mencoder \ -nosound -ovc lavc \ -lavcopts vcodec=mpeg4:aspect=8/6:vbitrate=8000000 \ -vf scale=640:480 -o timelapse3.avi \ -mf type=jpeg:fps=32 mf://@stills.txt $ ls -alFh timelapse3.avi -rw-r--r-- 1 user group 5.5M 3月 12 13:46 timelapse3.avi $ file timelapse3.avi timelapse3.avi: RIFF (little-endian) data, AVI, 640 x 480,\ >30 fps, video: FFMpeg MPEG-4
約65分間に撮った静止画像が約13秒の動画になった。
300倍の早回しになる計算。
mpv(1)などで再生できたが、Twitterなどは受け付けなかった。
MP4に変換。
$ ffmpeg -i timelapse3.avi timelapse3.mp4 .... $ ls -alFh timelapse3.mp4 -rw-r--r-- 1 user group 1.8M 3月 12 13:48 timelapse3.mp4 $ file timelapse3.mp4 timelapse3.mp4: ISO Media, MP4 Base Media v1 [IS0 14496-12:2003]
<video src="/misc/dust/screenshots/raspy/timelapse/timelapse3.mp4" autoplay width="640" height="480">
さてどう見えるか。一応Firefoxでは見えているし再生できているが。
を取り出して、画像に重ねてみた。
スクリプト化は、また次回。
日時をexifから抜き出して、左下にそれを書いた 透明の画像を作成。
$ exif -m $ORIG.jpg | grep 日時 | head -n1 日時 2020:03:07 11:48:26 $ convert -size 800x600 \ -pointsize 20 \ -fill "#eee" \ -font IPA明朝 \ -gravity SouthEast \ label:"撮影日時 2020/03/07 11:48:26" \ -transparent white -fuzz 1% date.png
文字色は、今の所、白に近い色合いでないとフォントの縁が白くなってうまくできない。純白だと文字まで抜かれる。
それから、元画像を同じサイズにする。
$ convert -resize 800 $ORIG.jpg temp.png
で、両者の重ね合わせ。
$ composite -gravity Center date.png temp.png new.png
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。
※ takanyon [FreeBSDではcronで5分おきにatrunを呼んでるだけです。<atdがない]