この日記にはツッコミを入れられます。 ツッコミを入れたい日付をクリックすると、フォームが現れます。
xreaでtDiaryを使う方法はxrea.com で tDiary を使う方法やインストールメモやXREA + tDiary + Namazuをどうぞ。
先日の IP アドレスの交換で default の VirtualHost の「It works!」とかが検索エンジンに残るとまずいと思って、 http://ya.maya.st/d/200707a.html#p20070709_1_2 を参考にして「/etc/apache2/sites-available/default」に以下の設定をした。「/」なのがまずいのか、別ファイルを指定するのはうまくいかなかったので、直接 HTML を埋め込んだ。 エラーメッセージは 503 のデフォルトのメッセージの「The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.」から「 or capacity problems」を削って使った。
Redirect 503 / ErrorDocument 503 "<html><head><title>503 Service Temporarily Unavailable</title></head><body><h1>Service Temporarily Unavailable</h1><p>The server is temporarily unable to service your request due to maintenance downtime. Please try again later.</p></body></html>"
まだ etch の apache 1.3 のサーバも残っていたが、そちらは ErrorDocument の末尾の「"」を削らないと「"」まで表示されてしまうと言うことになってしまっていた。
LDAP で認証統合しようとしている途中の Debian lenny のサーバで、普通の共有には認証したユーザでつながるのに homes 共有だけつながらないという現象が起きていた。
ログを見ると
passdb/passdb.c:lookup_global_sam_name(595) User ユーザ with invalid SID ユーザのSID in passdb
と出ていて、検索してみると setlocalsid すると直るという話があって試してみたが、変わらなかった。
エラーメッセージや検索して見つかった情報から、ドメインにするつもりはなくて LDAP を使いたかったために BDC っぽい設定氏にしていたことを思い出して、「domain logons = no」だったところを「domain logons = yes」にしてみると homes 共有にもアクセス出来るようになった。
これが正しい対処なのかどうかはわからないが、samba の設定はバージョンによる違いも多く、深追いするときりがなさそうなので、目的の範囲で問題なく動作していることが確認できれば良さそうに思った。
DNSサーバのIPアドレス変更 は影響範囲が把握しきれなくて難しそうだったので、新サーバと旧サーバのIPアドレスを交換することにした。
今のところ、交換したことによる悪影響は起きてなさそう。
rubyのワンライナーを見て、ワンライナーではあんまりrubyを使わないけど、正規表現はもうちょっとがんばれば条件1つだけで済ませられる(し strip もいらないのに)と思った。
ちなみにシェルのヒストリから取り出したコメント抜きにする例。 sources.list は行頭にしか「#」を使ってなかったけど、dovecot.conf は行の途中からもあったので空白を無視するようにしている。インデントにタブも使っていればタブも最初の文字クラスに入れれば良い。
egrep '^[^#]' /etc/apt/sources.list egrep '^[ ]*[^ #]' /etc/dovecot/dovecot.conf
commit がないときまで cron で redmine の "Repository.fetch_changesets" を動かし続けるのは無駄だと思って、 incron を使ってコミットがあったときに fetch_changesets するようにしてみた。
流れとしてはまず subversion の post-commit hook の途中に
touch /home/redmine/committed-stamp
のような処理を埋め込み、 committed-stamp の owner を www-data にしておく (post-commit hook の実行権限のユーザで、この場合は mod_dav_svn 経由にしているので www-data になる)。
次に crontab(1) と同様に incrontab(1) で
/home/redmine/committed-stamp IN_CLOSE,IN_NO_LOOP /home/redmine/fetch_changesets.sh
のような内容を登録する。
fetch_changesets.sh は今まで cron で実行していたスクリプトを改造したもので、以下のような内容。 incron は vixie-cron と違って、出力をメールで送信してくれる機能はないようなので、リダイレクトして何か出力されていればメールするようにしてみた。
sleep は上の IN_NO_LOOP とあわせて連続で commit があったときに連続実行される回数を減らすために追加してみた。
$ cat fetch_changesets.sh
#!/bin/sh
cd "$(dirname "$0")"
if [ redmine != `id -un` ]; then
echo $0: must run as redmine 1>&2
exit 1
fi
sleep 10
exec >fetch_changesets.log 1>&2
if [ -d redmine ]; then
cd redmine
/opt/ruby-enterprise/bin/ruby script/runner "Repository.fetch_changesets" -e production
fi
if [ -s ../fetch_changesets.log ]; then
mail -s fetch_changesets redmine < ../fetch_changesets.log
fi