Linuxの管理を効率的に
普段からトラブルを防止するために現在の状態を監視したいものです。
まずは基本的なコマンドの説明です。
○未送信メールを表示する
mailqで未送信メールを表示します。
送信中の場合は行頭に*が付きます。
うまく送れなかった場合は理由が表示されます。
○IPセッションを表示する
現在の接続状態を表示するのは
netstat
です。
これだけではTCP/IP以外の表示もされるので、
netstat --inet
の方が良いでしょう。
ここまでは標準で用意されているコマンドでしたが、ここでは私が実際に使っている管理用スクリプトを紹介します。
実際に使用するには、エディタで内容を作成後、適当なファイル名で保存して、
chmod +x ファイル名
で実行可能な状態にします。
/usr/local/binあたりに置けば良いでしょう。
○ニュースの到着時間を表示する
/var/log/news/newsにニュースが到着するごとにログが残ります。
これを表示することでいつどこから届いたかを知ることが出来ます。
tlog:
#!/bin/sh
tail -20 /var/log/news/news
○未送信ニュースを表示する
/var/spool/news/outgoingにまだ送信されていないニュースのMessage-IDが記録されています。
これを表示することで未送信ニュースを知ることが出来ます。
netstat --inetでプロトコルnntpのセッションのsend-qが0なのに未送信ニュースがたくさんある場合、おそらくinnxmitが止まっています。
この場合はps ax|grep innxmitでプロセス番号を調べてinnxmitをkillすると再送信を始めます。
denq:
#!/bin/sh
tail --line 5 /usr/local/news/spool/outgoing/*
echo
ls -l /usr/local/news/spool/outgoing|grep -v total
○メールの送受時間を表示する
寺子屋仕様のニュースはメールにして送ります。
いつ送受したかを知るには、まずは/etc/syslog.confにログを残す設定を行う必要があります。
mail.* /var/log/mail.notice
これを表示するといつ誰がメールを送受したかを知ることが出来ます。
maillog:
#!/bin/sh
tail -20 /var/log/mail.notice
これらの結果を使って毎日自動的にニュースを投稿してみましょう。
/usr/local/news/bin/inewsへ-hオプションを付けて記事の内容を渡せば投稿できます。
もちろんヘッダの部分もあらかじめ付けておきます。
最後のnkfは漢字コードをISO-2022-JPにするためです。
chmod +xも忘れずに。
daily:
#!/bin/sh
echo 'From: maachan@je4smq.spd.prug.or.jp(MITANI masaru)' > /tmp/daily
echo 'Newsgroups: spd.daily' >> /tmp/daily
echo 'Organization: SPD-NET(Sanyou Packet Doukoukai OKAYAMA)' >> /tmp/daily
echo 'Distribution: spd' >> /tmp/daily
echo 'Mime-Version: 1.0' >> /tmp/daily
echo 'Subject: daily news' >> /tmp/daily
echo 'Content-Type: text/plain; charset=ISO-2022-JP' >> /tmp/daily
echo >> /tmp/daily
echo 'ディスクの空き' >> /tmp/daily
df >> /tmp/daily
echo >> /tmp/daily
echo '未送信メール' >> /tmp/daily
echo >> /tmp/daily
mailq >> /tmp/daily
echo >> /tmp/daily
echo '未送信ニュース' >> /tmp/daily
echo >> /tmp/daily
/usr/local/bin/denq >> /tmp/daily
echo >> /tmp/daily
echo '最近見えた局' >> /tmp/daily
echo >> /tmp/daily
/usr/bin/mheard -d s -o p >> /tmp/daily
echo >> /tmp/daily
echo '--' >> /tmp/daily
echo 'このニュースは自動投稿です' >> /tmp/daily
cat /home/maachan/.signature >> /tmp/daily
#less /tmp/daily
nkf /tmp/daily|/usr/local/news/bin/inews -h
動かしてみて無事に投稿が成功したら、/var/spool/cron/crontabs/rootに追加して自動的に投稿しましょう。
0 1 * * * /usr/local/bin/daily
これでトラブル対応がかなり楽になります。