
ども! なのまるです!
他人が建てたサーバーを運用するってことはよくあることなんですが・・・
この設定ファイルって何のため?っていう事があったのでその解決法です!
もくじ
きっかけ
Splunk触っていたら、あるPostfixに「warning」が大量に出ている・・・1 | Sep 5 04:15:10 mailsrv postfix /cleanup [4272]: warning: database /etc/postfix/virtual .db is older than source file /etc/postfix/virtual |
ん??なんだ?と思ってGoogle先生に聞いてみたら、
「/etc/postfix/virtual.db」が「/etc/postfix/virtual」より古いんだって!(そのまんまw)
じゃ、調べてみる!
-rw-r--r-- 1 root root 11984 Jun 1 2011 virtual
-rw-r--r-- 1 root root 12288 Oct 17 2010 virtual.db
-rw-r--r-- 1 root root 12288 Oct 17 2010 virtual.db
うわっ!本当だ!∑(゚ω゚ノ)ノ 古い・・・
おそらく、RPMで更新した時に「/etc/postfix/virtual」だけ、更新されたんでしょう。
て、ことは「/etc/postfix/virtual」はデフォルトの状態だった。はず・・・(・・;)自信ない・・・
これは、virtual.dbがバイナリファイルの為デコードなりしないとわからないためです!
こんな風に再作成して、試してみました!
-rw-r--r-- 1 root root 11984 Jun 1 2011 virtual
-rw-r--r-- 1 root root 12288 Sep 5 10:40 virtual.db
-rw-r--r-- 1 root root 12288 Oct 17 2010 virtual.db.20140905
-rw-r--r-- 1 root root 12288 Sep 5 10:40 virtual.db
-rw-r--r-- 1 root root 12288 Oct 17 2010 virtual.db.20140905
うん。違っているらしいwww
diff virtual.db.20140905 virtual.db
Binary files virtual.db.20140905 and virtual.db differ
Binary files virtual.db.20140905 and virtual.db differ
virtual.dbのデコード
で、思ったのはこの「virtual.db」をデコードして中身を比較してみればいいんだと!
どうやって、デコードするの?
検索したらあった!
Recover/Extract a postfix virtual file from a known good virtual.db | ryanschwartz.net
こんなコマンド!
1 | [ /path/to/postfix ] % db_dump -p virtual.db > outfile |
ん?db_dumpなんてないってw
1 | No such file or directory |
また、調べたw
【Vine Linuxで自宅サーバー】各種トラブル対策
db_dumpコマンドが使えない場合の対処法
パッケージ db4-utils がインストールされているか確かめる。
はい!ありませんでしたw
インストール!
1 | sudo yum install db4-utils |
で、ここで初めてチェック!
-rw-r--r-- 1 root root 11984 Jun 1 2011 virtual
-rw-r--r-- 1 root root 12288 Sep 5 10:40 virtual.db
-rw-r--r-- 1 root root 12288 Oct 17 2010 virtual.db.20140905
-rw-r--r-- 1 root root 12288 Sep 5 10:40 virtual.db
-rw-r--r-- 1 root root 12288 Oct 17 2010 virtual.db.20140905
デコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [root@mailsrv postfix] # db_dump virtual.db.20140905 VERSION=3 format =bytevalue type = hash db_pagesize=4096 HEADER=END DATA=END [root@mailsrv postfix] # db_dump virtual.db VERSION=3 format =bytevalue type = hash db_pagesize=4096 HEADER=END DATA=END |
うん、一緒!
て、ことでめでたくpostfixをreloadしました!
1 | sudo service postfix reload |
まとめ
- これで、postfixのdbファイルと戦える!
- db_dumpはdb4-utilsパッケージに入ってます!
- わざわざ、こんなことしなくても「touch」コマンドでタイムススタンプ変えればよかった!w(オチ)
参考図書
photo credit: aranarth via photopin cc