2002-07-17(水) 8169歩 [長年日記]
■ ゆうべの3時?
tDiary.Netの不具合は、ここじゃなくてtDiary.Net運営日誌の方にツッコんだ方がよろしいかと。書いてる人は同じだけど(笑)。
でも、3:15前後のアクセスは、ログを見る限り問題なかったようだけど。そちらの経路に問題があったという可能性は?
■ ssh port forwarding(3)
killするなら、「-f -N」と指定するんじゃなくて、「-N」だけ指定して「&」付きで起動すれば「$!」が使えていい……のかな。-INTや-TERMじゃ死んでくれないから気持ち悪いなぁ。
で、けっきょくこんな感じにして、cronで適当に呼び出すようにした。qmailでMaildirという環境にがっちり依存してしまったが、自分ひとりで使うのだからこれでいいのだ。メール送信をqmail-injectに任せてしまったところが省力化のポイントか。これだとBccなんかもよきにはからってくれるし。「指定したディレクトリにファイルがない」という条件をどう書いたらいいのかわからなかった、というのが恥ずかしい部分かも(笑)。
#!/bin/sh OUTBOX=$HOME/Maildir/.Draft/cur SENT=$HOME/Maildir/.Sent/cur if [ `ls $OUTBOX | wc -l` = 0 ]; then exit fi source $HOME/.ssh-agent-foo ssh -f -L 8025:localhost:25 bar sleep 60 for mail in $OUTBOX/*; do /var/qmail/bin/qmail-inject < $mail mv $mail $SENT done
んでもって、/var/qmail/control/smtproutesにはこんな行が書いてあるわけだ(もちろん他の条件も書いてあるけど抜粋)。
:localhost:8025
2002-07-16(火) 6089歩 [長年日記]
■ 台風7号
家を出たときはほとんど降っていなかったし、帰る頃には晴れるという予報を信じて、傘を持たずに行ってみる。我ながら、勇気ある行動。
新横浜ではほとんど屋根の下から出ずに会社に行き着けるので、これで正解であった。13:00現在、外はもう青空。ひひひ。
■ ssh port forwarding(2)
昨日は中途半端なところで帰ってしまったので、案の定ツッコミをもらってしまった。すまぬ。ssh over SOCKSの環境はこんな苦労をして構築済みなので新たにzebedeeという選択肢はちとね。あと……このワタシにmewを使えと!?(笑)。いや、会社ではBecky!ですけん。
つーわけで、-Nとか-fとか、ちゃんとmanを読んだくせにみごとに読み落としていた(←英語だから……)オプションを教えてもらい、うまいこといけるメドがたった。もっとも、-Nは終わらせ方がきれいにいきそうにないので、-fを指定しつつsleepコマンドを向こうで実行するというのが、想定している使い方にはいいみたいだ。
想定している使い方っつーのは、メールを1通送るたびにセッションを張るんじゃなくて、1時間か30分に1回、まとめてポーリングする感じ。IMAPでDraftメールボックスをキュー代わりに使うようにすると、Maildirを使っていれば簡単にこれができる。こんな感じ。実際のコードになってないのはそれを書いてる暇がないからなんだけど……。
if キュー($HOME/Maildir/.Draft/cur/)にファイルがあったら ssh -f -L 8025:localhost:25 bar sleep 60 キューの中身を送信するコマンド fi
■ Kondara後
Asumiの私家版errataがここにあるみたい。この方、Kondara 1.2のerrataもメンテしてくれていたりして、足を向けて寝られないとはこのことである。ありがたや。
2002-07-15(月) 7621歩 [長年日記]
■ Kondara
ありゃ、朝は「まだ動いてるなー」と思っていたんだが、午後、会議をしている間に止まってしまったのか。なんか今日は、感慨に浸る暇もなかったよ……。けっきょくerrataの件はどうなったんだろう。
それはそれとして、個人的に先端を追いかけたいソフトは、自前でビルドする習慣にしなくてはな。Rubyはもちろんのこと、ついに0.8.0になったSylpheedとか。
■ W32/Frethem
社内に侵入した模様。いまどきこの手のメールを開くなよな……。
って、おれにも届いてるわ。ohpa MLだ。なんか、いまMorphyOneのMLにワームが流れるというのも、象徴的だなぁ。
■ ssh port forwarding
防火壁の外側にあるSMTPサーバを、SOCKSとssh経由で使う必要ができたので、sshのport forwardingを使おうと思った。SOCKSの口はそんなにたくさんあるわけではないので、必要なときだけsshで経路を確保して、終わったら閉じるようにしたい。
しかし、ふつうに-Lを使うと
sho@foo ~% ssh -L 8025:localhost:25 bar Last login: Mon Jul 15 19:06:59 2002 from foo sho@bar ~%
てな感じにloginしてしまうので、次の処理に移れない。それじゃぁと思ってバックグラウンドに回してみても、
sho@foo ~% ssh -L 8025:localhost:25 bar & sho@foo ~% telnet localhost 8025 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. (だんまり...)
となってしまうわけだ。コンソールが必要だから、裏に回るとsuspendされちゃうんだな。bgで動かし続けるわけにもいかないようだ。
それでは、ってことで、向こう側で適当な時間動き続けるプログラムを指定してやることにした。
sho@foo ~% ssh -L 8025:localhost:25 bar sleep 3 & [2] 495 sho@foo ~% telnet localhost 8025 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 bar ESMTP Postfix
おぉ。これでいけるじゃん。しかも、他のプロセスがこのセッションを使っている間はsleepで指定した秒数が経過しても切れないみたいだし。これならいけそう。
◆ かずひこ ['-N' は役に立ちませんか? man ssh よりによると -N Do not execute a remote..]
◆ きた [そんなあなたにzebedee # と宣伝してみる.]
◆ ほそのひでとも [ふつーの人がOutlook Expressを使っていると うっかり開くもなにも、届いた時点で終わり、ということも…(..]
◆ yada [mew-smtp-ssh-server はどう?フォワード処理までメーラがやってくれますが]
◆ smbd(一応momongaのsylpheedメンテナ?) [Asumi向けsylpheedはうちで公開してたり(^^;]
◆ UmaShika [私が会社などから自宅サーバへport forwardする際に使ってるのは、 $ ssh -2 -f -N hoge ..]
◆ なかだ [set -- $OUTBOX/* [ -e "$1" ] || exit とか?]
◆ ただただし [ぬおー、なるほどー]