とある仕事でメールが受信できないトラブルが発生し調査したことがあったのですが、
なぜかトラブルのある人だけ毎回通信がタイムアウトしていることがありました。
その際にメールの受信件数を把握するためメールボックス(Maildir形式)内の
ファイル数を数えてみることにしました。
今回はメール件数を把握するために使っていますが汎用的に使えますので
備忘録として記録しておこうと思います。
例) /var/mail/aaa にあるファイル数を確認する場合
find /var/mail/aaa -type f | wc -l
これだけです。
findはファイルを検索するコマンドで、この出力(検索結果)をwcコマンドで受けることで
ファイル数が分かるという仕組みですね。
ちなみに、上記の方法ですとfindでファイル形式を指定していませんので全ての
ファイルが検索対象となり、純粋なメール件数だけでなく設定ファイルなども
含まれますが、それはまぁ誤差ということで^^;
# 余談ですがメールが受信できなかった人はなんと2万件もメールがありました(O_O)
はじめは十分に空きのあったはずのディスクも
いつの間にかいっぱいになって慌てたことはありませんか?
今回はこんな時のスマートな解決方法を紹介します。
まずはディスク全体の確認
これにはdfコマンドを利用します。
df -h
Filesystem Size Used Avail Use% Mounted on /dev/sda2 1012M 362M 599M 38% / /dev/sda1 99M 26M 69M 27% /boot /dev/sda7 88G 1.6G 82G 2% /home none 503M 0 503M 0% /dev/shm /dev/sda5 9.9G 2.2G 7.3G 23% /usr /dev/sda6 9.9G 2.2G 7.2G 24% /var
こんな感じになって使用状態が一目で分かります。
ここでUse%のところに注目し、100%に近づいているところが
危険領域です。(ディスクを多く使っている)
では次に、その多く使っている領域の何がディスクを圧迫させているかを調べます。
例) /usr の利用状況を調べる
du -s /usr/*/ |sort -rn
678248 /usr/local 390796 /usr/share 346412 /usr/lib 194780 /usr/src 94332 /usr/java 54788 /usr/bin 15072 /usr/sbin 14048 /usr/include 12780 /usr/kerberos 8768 /usr/X11R6 3132 /usr/libexec 4 /usr/games 4 /usr/etc 4 /usr/dict 0 /usr/tmp
こんな感じにディレクトリ毎に使用している容量が分かります。
使用量の多いディレクトリをチェックして
余分なファイルを削除する等することでディスクを空けましょう。
これで解決です。
cron という Unix/Linux系のOSで定期的な処理を実施するためのデーモンがありますが、
このコマンドを実行した結果(標準出力やエラー出力)は通常メールで通知されます。
1日毎の時刻の修正やアップデータのチェックなど
結構使う機会が多いので便利なコマンドですが、毎回毎回メールが来ると
正直ウザくなったりしますよね。
今回はこのメールを来ないようにする方法を紹介します。
通常
* * * * * command 1> /dev/nul
エラーメッセージのみメールが来るようにする
* * * * * command 1> /dev/null
絶対にメールが来ないようにする
* * * * * command >/dev/null 2>&1
アスタリスク(*)の部分は実行間隔に合わせ適時設定下さい。
(それぞれ 分 時間 日 月 曜日 です)
command は実行させる定期処理です。お使いになる処理に合わせて変更下さい。
1 は 標準出力、2 は エラー出力を表しています。
/dev/null に出力させることで出力をなかったことにします。
以上
FreeBSDでinetdを再起動する方法です。
通常Linux系OSですと
/etc/init.d/inet restart
もしくは
service inet restart
になりますが、FreeBSDにはこれに該当するようなものがありません。。。
ではどうやって再起動するか?
サーバ自体の再起動(shutdown -r nowなど)が一番確実ですが、
さすがに外部にサービスを提供している状態でこれは出来ませんね^^;
さてどうしたものか?
答えは簡単でした。
kill -HUP `cat /var/run/inetd.pid`
してあげればよいのです。
Linux系OSに比べ親切でない気もしますが、よしとしましょう^^;
FreeBSDでパッケージ管理をしてくれるありがたいportsですが、
一旦インストールしたパッケージを再度オプションを変えて
インストールしたいときってありますよね?
例えばpostfixを再インストールするとした場合
という感じになるかと思いますが、このとき一度でも
インストールしたことがあるとその際のコンパイルオプションが
データベースに記憶されており勝手に同じコンパイルオプションで
インストールされてしまいます。
いろいろネットで調べるも調べ方が悪いのでしょうがこれを解決させる
方法がみつかりませんT-T
あきらめかけたときついにみつかりました!
まずportsの対象パッケージまで移動
cd /usr/ports/mail/postfix-current
オプション指定をクリアするために以下のコマンドを実行
make rmconfig
これでオプションが初期状態にクリアされます!^^
ちなみにオプションだけを設定するには
make config
オプションを見るだけなら
make showconfig
が使えるようです。
最近のコメント
14年 29週前
14年 44週前
14年 44週前
17年 20週前
18年 36週前
18年 36週前