MariaDBを削除したらPostfixも一緒に消えちゃった話
会社で休眠状態になってるサーバーを上手いこと活用すべく、色々なツールを入れていたところ、気付いたらそのサーバーからメールが飛ばなくなっていました。
maillogを見てみるとそもそもPostfixが動いていないようでした。 先週まで元気に動いてたはずなのにおかしいなと思いつつ、起動させようとしてみました。すると「postfix.serviceは存在しません」みたいなことを言われました。
…このサーバーを立ち上げる時にPostfixを入れて、四苦八苦しながら設定作業をしたのは私のはずですし、そもそも先週まではちゃんと動いていたはずなのですが、これは一体😓
念の為、こんな感じのコマンドでサービス一覧を出してみましたが、postfix.serviceは見当たりませんでした。
$ systemctl list-unit-files --type=service
結果は貼れませんが、Dovecotとかはちゃんといました。一体Postfixはどこへ… 嫌な汗をかきつつ、whichコマンドを打ちます。
$ which postfix no postfix in ...
見つかりません。 間違いなくPostfixが入ってるはずなのに… 混乱した頭でyumのインストール済みのパッケージの一覧を出します。
$ yum list installed | grep postfix
何も返ってこない😨
半ば祈る気持ちでfindコマンドを打ちます🙏
$ find / -name postfix /etc/postfix
…設定ファイルのディレクトリはありました。 実は全てが自分の気のせいで、そもそもPostfixなんて入ってなかったオチとかじゃなくて良かったです😅
ここで少し落ち着きを取り戻して「postfix 消えた」という、大変ざっくりしたキーワードでググり始めました。 こんな雑な検索でも、このような記事が引っかかってくれました。
こんにちは。パッケージの削除について考えらされたので記事にしました。こちらのエントリーで構築した環境でメールテストを行った際に発覚しました。[ローカル開発環境 ...
この記事だとMySQLを更新するのにremoveしたところ、Postfixも削除されてしまったそうなのですが、ずばり私もMariaDBのアップデートをするのに、それまで使ってたバージョンを削除していました。
つまりPostfixを削除した犯人は私だったのです…!
うん、そんな気はしてた。そんな気はしてたけど…!そんな…!!
こう、推理小説とかで、主人公が実は犯人だったみたいな展開って、はたから見るとすべってることも多いのですが、いざ体験してみると、ものすごくびっくりするんですね。今すごく読者との温度差を感じます。
気を取り直して、先ほどの記事にあるように、yum historyを確認します。
$ yum history list | grep Erase
Eraseになってる直近の履歴が出力されるので、あとはちまちまとyum infoで確認していきました。
$ yum history info 20
これも結果は貼れませんが、切り替えたパッケージの項目に「削除 postfix …」と書かれているものが見つかりました。
さらにスクリプトの出力の項目を見てみると /etc/postfix/main.cfや/etc/postfix/master.cf, /etc/postfix/virtualはバックアップが保存されている旨の警告が出ていました。 今回はよりにもよって物理サーバーでやらかしたので、ものすごくげんなりしていましたが、設定ファイルが無事となれば、すぐに元の状態に戻せそうです。
$ yum install postfix
やらかしたばかりなので、yオプションはつけませんでした。でも明日辺りには、また軽率にオプションをつけていく生活に戻る気がします。
あとは警告で出ていた設定ファイルたちを元の場所に戻します。
$ rm -f /etc/main.cf $ mv /etc/main.cf.rpmsave /etc/main.cf
/etc/postfix/virtualを設定しているので、postmapコマンドも打っておきます。
$ postmap /etc/postfix/virtual
これでなんとかメールサーバーを復旧させることができました🙌