Server: 2007年10月アーカイブ

 PostgreSQLってデータディレクトリーの名前が数字になっているのでどのディレクトリーとデータベースが対応しているか直感的にわからないため各データベースが使用しているディスク容量を調べるにはツールが必要になります。

 それで、本やネットで調べるとoid2nameを使えばOidとデータベース名の対応を表示してくれるみたい。どうやら数字のディレクトリーはOidのようです。公式ページや本ではREADME.oid2nameを見れと一言だけしか書いてないので使い方はREADME.oid2nameを参照することにしました。

 …が、そもそもソースコンパイルではoid2nameが入っていない。しかもoid2name導入についての記述がどこにも見当たらない。一応Makefileはあるので考えられる方法で導入してみることに。

まずoid2nameのソースがおいてある場所は
/usr/local/src/postgresql-8.1.0/contrib/oid2name/
でした。ここに、
README.oid2name
Makefile
oid2name.c
の3つのファイルがあります。

postgres> cd /usr/local/src/postgresql-8.1.0/contrib/oid2name
postgres> /usr/local/bin/make install

ここでmakeが絶対パスで指定していますが、これはGNU makeの方です。本体と同じくoid2nameも通常のmakeでは利用できませんでした。ただ本体の方は通常makeを指定してもさらにGNU makeを探しに行ってくれるので/usr/bin/makeで打ってしまっても大丈夫だったりします。

これでoid2nameが/usr/local/pgsql/bin/oid2nameにインストールされました。
早速使ってみます。

postgres> oid2name -P ********
All databases:
Oid Database Name Tablespace
----------------------------------
10793 postgres pg_default
10792 template0 pg_default
1 template1 pg_default
16452 test pg_default

Pオプションはパスワードです。ローカルでの認証をtrustにしている場合は不要だと思いますが、それはあまり好ましくないのでパスワード設定しておきましょう。
ただしこのコマンドは対話的にパスワードを入力できず上記のようにコマンドライン上か~/.pgpassに設定する必要があるので困り者です。

さらにテーブルごとに調査したい場合は
postgres> ll -S $PGDATA/base/16452 | head -10
total 3684
-rw------- 1 postgres postgres 352256 May 21 2006 1255
-rw------- 1 postgres postgres 344064 May 21 2006 2691
-rw------- 1 postgres postgres 237568 Jun 11 2006 2608
-rw------- 1 postgres postgres 204800 Jun 11 2006 1249
-rw------- 1 postgres postgres 204800 Jun 11 2006 2658
-rw------- 1 postgres postgres 172032 Jun 11 2006 2674
-rw------- 1 postgres postgres 155648 Jun 11 2006 2673
-rw------- 1 postgres postgres 122880 May 21 2006 2609
-rw------- 1 postgres postgres 114688 May 21 2006 10305

のようにテーブルのoidを確認して次のようにコマンドを打ちます。
postgres> oid2name -d test -f 1255 -f 2691 -f 2608 -f 1249 -f 2658 -f 2674 -f 2673 -f 2609
-f 10305 -P ********
From database "test":
Filenode Table Name
-------------------------------------------
1249 pg_attribute
2658 pg_attribute_relid_attnam_index
2608 pg_depend
2673 pg_depend_depender_index
2674 pg_depend_reference_index
2609 pg_description
1255 pg_proc
2691 pg_proc_proname_args_nsp_index
10305 pg_toast_2618
実際テーブルレベルになってくるとデータベース側が定義したものが多すぎて単純に振り分けるのが困難ですね。上記はサンプル通りファイルサイズの多い順でやってみましたが、独自で定義したテーブルは出てきていません。

 ちょっと脱線しましたが、データベースごとの測定は簡単にできます。先程testデータベースのoidは16452と分かりましたのでduコマンドで測定します。

postgres> du -sh $PGDATA/base/16452
3.6M /usr/local/pgsql/data/base/16452

各データベースということであればdepth 1でもいいと思います。
postgres> du -d 1 -h $PGDATA/base/
3.6M /usr/local/pgsql/data/base/1
3.6M /usr/local/pgsql/data/base/10792
3.6M /usr/local/pgsql/data/base/10793
3.6M /usr/local/pgsql/data/base/16452
14.4M /usr/local/pgsql/data/base/

 以前、自宅の開発サーバで設定しておきながらド忘れ。しかも何故かメモとってないわ、実装済みのサーバーは構成変更してWebalizerを無効にしてしまったりとメチャクチャにしていた…orz

 結局メモとして残してあるのが日別ログの場合の集計設定だけだ…(´∀`)ハハハ
なんとなくうろ覚えのまま似たような情報を探したらパソコンおやじにあった。しかしおやじは守備範囲広いなぁ…

パソコンおやじ
http://www.aconus.com/~oyaji/index.htm

WebalizerによるWebアクセスログ解析
http://www.aconus.com/~oyaji/www/webalizer.htm

 早速Postfixの設定でやる気無くしているこの頃です。メールサーバだけはどれを選んでもめんどくさいなぁ、Sendmailが複雑過ぎて後発のメールサーバも設定が複雑なのかどうかは知りませんがバーチャルドメインとバーチャルユーザに関してはもっと簡素にして欲しいと思ってます。

 手持ちの本では分厚いだけで内容は古くて若干方法違うし、流れに沿って書いてないのでチュートリアル的な読み方難しいし…歴史とかウンチクいらねぇ。バーチャルドメインについても似た方法並べられていてどれがいいか選べない…(メリットデメリットの説明がわかりにくい)

 ということでもっと『何をやればいいか』を簡潔に書いてある情報はないかなーと探していたら以下のサイトを見つけました。

Postfix+MySQL+Postfix AdminによるバーチャルSMTPサーバの構築(SuSE9.2-9.3編)
http://www.aconus.com/~oyaji/suse9.2/smtp-mysql-suse.htm

 UNIX系のお仕事なのでどの現場にもviを唱える人はいるし、この業界の新人には一種の洗礼のようなものな気がするviですが…私は軟弱者なのでviにはこだわりません。いつもvimかeeですよ|||orz

 ただそう言われる割には仕事で使うUNIXはRedHat系が多くてviコマンドを使うけど中身はvimなんですよね。起動・終了・編集モード・上書き保存さえ覚えれば普通に使えるしemacsよりも覚えること少なかったりする。どういう風にviを使っているのかとコマンド話してみたらiと:q!とZZぐらいって人が多数。

 本物のvi使いだと思ったのはこれまで会った人の中ではたった一人かな。その方はカーソルキーに手を伸ばすこと自体無駄作業と言う位vi使いは徹底していました。軟弱な私は未だに似非タッチタイピングなのでカーソルキー使いまくりでも気にしないわコピペはマウス使ってしまうわで最悪なのは素のviでもついついBSキーに手が伸びます。素のviだとBSキー使うと動きがおかしくなる可能性があるので危険だし挿入はiキーを押した以降にしか適用されないのでvimに比べると編集モードの切り替えが頻繁で面倒だと思う…。

 ただ文章にしろプログラムにしろtypoだらけで方々から散々指摘されまくりなので似非タイピングだけは直したほうがいいな…オンラインゲームのチャットでは誤爆王として面白い人扱いなのですが(・ω・)

viを使い倒そう
http://www.linux.or.jp/JF/JFdocs/vi-user-usage.html

viの使い方
http://www.jitaku-server.net/vi.html

 php.iniの編集を行っているときに参考サイトを探していたら脆弱となる設定リストをまとめているWikiを見つけました。意外とphp.iniの設定まで気が回らないサーバーも散見するので確認リストとして使うと便利ですね。

PHP-脆弱性リスト-メモ - PukiWiki
http://wiki.ohgaki.net/index.php?PHP%2F%C0%C8%BC%E5%C0%AD%A5%EA%A5%B9%A5%C8%2F%A5%E1%A5%E2

ntpサーバ

| | コメント(0)

 自宅サーバではcronで毎日一回時刻補正していますが、それでも一日7~10秒ずれるので、そろそろntpサーバにしたほうが良いかなと…。

http://mkplan.com/memo/FreeBSD/ntp.html

 元々インストールされているし導入も全然難しくないですね。後はntpの参照先を日本標準時と同期しているサーバから選ぶようにしてみます。

このアーカイブについて

このページには、2007年10月以降に書かれたブログ記事のうちServerカテゴリに属しているものが含まれています。

前のアーカイブはServer: 2007年9月です。

次のアーカイブはServer: 2008年1月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 4.1