2010/10/17

電話番号パターン認識

こんなモジュールがあるんだー。
http://perldoc.jp/docs/modules/Number-Phone-JP-0.03/JP.pod

2010/10/07

rsyslogのタイムスタンプ

しばらく前にsyslogをrsyslogに置き換えて運用していたんですが、そのせいでawstatsがまともに動かなくなっていたようです。

普通のログだとタイムスタンプが

MMM DD hh:mm:ss

とかになってるんですが、rsyslogがタイムスタンプの標準(?)が

YYYY-MM-DDThh:mm:ss:uuuuuu[+-]zz:zz

になってるみたい。

解除するには、rsyslog.confの各ログの書式に「;RSYSLOG_TraditionalFormat」をつければ良いそうで。
サンプルをば。

mail.* /var/log/maillog



mail.* /var/log/maillog;RSYSLOG_TraditionarFormat

とする。

でも、高精度タイムスタンプが使えるんならその方がいいなぁ。
何とかしてawstatsに食わせるために、

sed -e 's/^\([0-9][0-9]*-[0-9][0-9]-[0-9][0-9]\)T\([0-2][0-9]:[0-5][0-9]:[0-5][0-9]\)\.[0-9]*[+-][0-9][0-9]:[0-9][0-9]/\1 \2/g'

なんて小賢しいフィルタも考えてみたんだけど、maillogconvert.plがうんともすんとも言わない。


さて、どうしたものか.....

2010/10/06

携帯宛のメールが届かない?

友達から「MLに送ったメールが1通だけ届かない」なんてメールがきた。
ログを見てみると、確かにその時間帯に着信したメールがその友達「だけ」に送信されていない。
.....なんでだ?

とりあえず分からないので、postfixをいじってみた。

main.cfに追記

transport_maps = hash:/etc/postfix/transport


transportを作成、ハッシュ化

softbank.ne.jp smtp-softbank:
ezweb.ne.jp smtp-ezweb:
docomo.ne.jp smtp-docomo:


master.cfにカスタムトランスポートを追加

smtp-softbank unix - - n - 1 smtp
-o smtp_destination_concurrency_limit=1
smtp-ezweb unix - - n - 1 smtp
-o smtp_destination_concurrency_limit=1
smtp-docomo unix - - n - 1 smtp
-o smtp_destination_concurrency_limit=1


とりあえず様子を見てみましょ。

2010/10/02

DNSサーバ、そしてお手軽セカンダリDNS

いままで会社のやつに滑り込ませていたので、ちょっと申し訳ない感じがありましたが、やっとDNSを自前運用にしました。
これでDNS/web/mailが全て自前運用になったので、やっと次のステップに進めそうです。

やったこと。
1.使っているサーバ)Centベース)にbindとbind-chrootを入れる
2./var/named/chroot/etc/named.confを編集
2-1.internalセクションの中は全部コメントアウト
2-2.keyセクションもコメントアウト(次の機会にでもいじる予定)
3.sampleディレクトリにあるnamed.*を/var/named/chroot/var/named/にコピー
4.ゾーンファイルを/var/named/chroot/var/namedに作成(命名はドメイン名.zone)
5./var/named/chroot/etc/named.confを編集
さっき作ったゾーンの設定を追記
6.起動!

ちなみに、利用しているお名前.comだと、セカンダリDNSサービスってのがあります。これはラクでいいですね。しかも、自分が利用しているサーバと全く管理形態が異なるので、同時に落ちる心配もほぼ皆無といっていいでしょうし。自分で2台もDNSサーバが用意できない方にオススメ。
ドメインNaviの手順に従って設定し、最後にネームサーバを変更して無事完了です。

というわけで、次は「完全手動ダイナミックDNS」を「ちゃんとしたダイナミックDNS」にしようと思います。

2010/08/16

apacheのコツ

apacheのコツをいくつか。

configはどこにある?

まず、プロセスを見ましょう。すると、httpdなプロセスがいくつかいるはず。
このバイナリに"-V"オプションをつけて実行してみましょう。
ファイルシステムのパーミッションに阻まれない限り、non-rootユーザでも実行できます。
すると、こんな感じの情報が出てきます。

# httpd -V
Server version: Apache/2.2.3
Server built: Apr 4 2010 17:19:54
Server's Module Magic Number: 20051115:3
Server loaded: APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture: 32-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="run/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

で、何を見るべきかというと、-Dオプションに続く「HTTPD_ROOT」と「SERVER_CONFIG」を見るのです。このふたつをくっつけたところを見に行ってみると、httpd.confがいるはずです。


ここから先はソースで入れるような人には向かないかもしれませんが、RPM版apacheについていくつか。

httpd.confは初期設定を除いてできるだけいじらない

httpd.confはグローバルな設定(スコープがGlobalなconfig)に止めて、それ意外はできる限り書かないようにしましょう。
VirtualHostの設定なんて書くべきじゃありません。入れておくべきはこのぐらいでしょうか。
  • グローバルパラメータの設定
  • MPMの設定
  • モジュールの読み込み設定
  • 各種インクルード

じゃあ、それ以外はどこに書くの?


Includeを活用しましょう

それは、役割ごとにIncludeするんです。
RPM版apacheのデフォルトでは、こんな記述があります。

Include conf.d/*.conf

サーバ上のパスだと/etc/httpd/conf.d/になります。

ここにいくつかファイルがあるはずですが、不要なものは名前を変えてincludeされないようにしましょう。mod_perlを使わないのであれば、perl.confをperl.conf.offとかに変えるだけ。拡張子が".conf"のものしか読まれないので、これで充分です。

バーチャルホストについてはいろいろやり方がありますが、自分のやりかたを参考までに書いておきます。
  • conf以下にvhostsというディレクトリを掘る
  • vhostsの中に、バーチャルホストのコモンネーム.confでファイルを作成し、該当するバーチャルホストの設定を書く
  • conf.dの下にvhosts.confというファイルを作成する
  • このvhosts.confに、必要なNameVirtualHostを列記し、その下に、Includeでバーチャルホストファイルを読み込んでいく。
こうすることで、httpd.confに余計な改変を加えず、好きな順番でバーチャルホストを読み込ませることができます。
何でバーチャルの順番に気を遣うか。IPアクセスされた際に、最初に設定されたバーチャルホストが反応してしまうので、どのバーチャルホストを先頭に持ってくるかが重要なのです。


まとまりのない文章ですいません。

2010/07/16

WindowsXPにおけるSpeedStep

昔、どっかで調べたことです。
今さら使うのかどうか分かりませんが、とりあえずメモ。


Constant:常に低い駆動周波数でCPUを駆動
Adaptive:CPU使用率が高いときに高い駆動周波数に設定
Degrade:低い駆動周波数でCPUを駆動し、バッテリーの残り容量に合わせてCPUのパフォーマンスを下げていく
None:常に高い駆動周波数でCPUを駆動

電源管理アプレットでの設定 → ACアダプターつき / ACアダプターなし
自宅または会社のデスク → None / Adaptive
ポータブル/ラップトップ → Adaptive / Adaptive
プレゼンテーション → Adaptive / Degrade
常にオン → None / None
最小の電源管理 → Adaptive / Adaptive
バッテリの最大利用 → Adaptive / Degrade

追記
HKU\.DEFAULT\Control Panel\PowerCfg\PowerPolicies\数字

2010/07/11

初体験

大地53をロバ化された...(泣)

ちなみに今日の収穫。
・ヌイグルミ7
・OC3
・ロバ2
・テーマ1
・わらし2

...ちょっと低めだな。

もはやハードウェアに縛られている時代ではない

本日、インターンの対応をやっていて思ったこと。

クラウドに何を求めるのか?

少なくとも、「新しい技術」ではない。
あくまでクラウドとは「基盤」である。
その上にどんな「サービス」があるのかが重要だ。

電車が時間通りに運行されていれば、最低限まともな電車であると認識する。
線路の上を走っていようがタイヤで走っていようが、ACだろうがDCだろうが、狭軌だろうが標準軌だろうが、そんなものは関係ない。それらはあくまで「基盤」である。我々が求めるものは「サービス」である。

サービスは、利用できるのであればその形態は問わない。
iPhoneだろうが、Netbookだろうが、PCだろうが。
googleだって使えるし、evernoteも然り。
そう、ネットにさえ繋がれば、どんなデバイスでも同じように使えるのだ。

2010/07/06

Firefoxのアドオンpart2

前回に引き続き、こんどは会社で使っているPCについてです。
part1で出てきたものについてはタイトルのみ。

Elasticfox
Amazon EC2のフロントエンドツールです。
Evernote Web Clipper
FireBug
HTML関連のエラーを見つけてくれるやつなはずです。
FireGestures
自宅PCに入れているのとはまた別のジェスチャーアドオン。All-in-one Gesturesよりはシンプル。
HTML Validator
HTMLの構文チェックをしてくれます。
Live HTTP Headers
Web Developer
開発者向けのツールだった気がする。人から薦められて入れたので、ちゃんとは覚えてないです。
YSlow
ページのレスポンスタイムをブラウザから計測できるツールです。


あとは会社で使っているPCがもう1台ありますが、それはまたの機会に。

2010/07/04

Firefoxのアドオンpart1

ちょっと気になったので、各環境のFirefoxで自分がどんなアドオンを入れているか調べてみました。隠れた目的としては、各環境で適当な管理状態になっているアドオンを、この際統一してみよう、というのがあります。


All-in-One Gestures

マウスジェスチャーを実現するアドオンです。ローカライズされており、かなり細かいところまで設定が可能。

Compact Menu 2

アドレスバーのところにメニューを押し込むことができるアドオンです。本来のブラウザ領域をできるだけ広く取ろうとすると、メニューバーの領域すらももったいなく感じたために入れてあります。

Evernote Web CLipper

Evernoteにメモを送り込むためのアドオンです。iPhone使いには必須。

FxIF

画像のプロパティを開いたときにExIFのデータが見られるようにするアドオンです。意外に見るツールがないんですよね。

Live HTTP headers

HTTPプロトコルのリクエストやレスポンスをそのまま見ることができます。仕事上必須アイテム。

Tab Mix Plus

タブの挙動を細かく制御できるアドオンです。タブを閉じたあと、どのタブをアクティブにするかを制御できるので、別のタブブラウザからの乗り換えを吸収するのに良いかも。

TwitterBar

アドレスバーからtwitterに投稿できるアドオン。アドレスバーに文章を入れて、右端にあるボタンを押すことで投稿できます。わざわざ別ウィンドウを開かなくてもそのままtwitできるのがポイント。

タブカタログ

まんまですね。Ctrl+Tabでタブを切り替えるときに現れるので便利。



他の環境についても書いていきますが、週明け以降に。
気になったのがあれば是非お試しください。