- PR -

大きな/var/spool/clientmqueceを何とかしたい

1
投稿者投稿内容
八兵衛
会議室デビュー日: 2004/12/20
投稿数: 18
投稿日時: 2005-10-13 13:59
お世話になっております。
Redhat Enterprise linux4を使用しております。
お教え願いたいのですが、
/var/spool/clientmquece
が増え続けております。内容は次の通り。

合計 3184480
drwxrwx--- 2 smmsp smmsp 77824 10月 13 13:10 .
drwxr-xr-x 20 root root 4096 3月 2 2005 ..
-rw-rw---- 1 smmsp smmsp 8563 3月 2 2005 dfj325G7xd002433
-rw-rw---- 1 smmsp smmsp 8561 3月 2 2005 dfj325KsAS002753
-rw-rw---- 1 smmsp smmsp 8564 3月 2 2005 dfj325PgTL002964
・・・・まだまだ、続く

という感じです。
このファイルは、sendmailの待ちファイルの様なのですが、
sendmailのサービスを当方、止めており、そのため増え続けてるのでしょうか?
cronでスクリプトを色々指定しておりますが関係はありますか。その結果がファイルの内容なのでしょうか?

増え続けるのを止めたいし、大きなこのファイルを何とか(削除)したいのですが、
どうすれば、良いのでしょうか?

お教えください。
try
常連さん
会議室デビュー日: 2004/10/22
投稿数: 38
お住まい・勤務地: 神奈川/東京
投稿日時: 2005-10-13 15:42
なんらかのアプリケーションがメールを送信しようとしたが、sendmail(MTA/MSA)が
停止しているから送れずにキューに入っているものだと思われます。

とりえず、moreやcatでファイルを見ることをお勧めします。
八兵衛
会議室デビュー日: 2004/12/20
投稿数: 18
投稿日時: 2005-10-13 16:59
ご回答ありがとう御座います。
中身を見てから、削除するよう致します。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-10-13 19:53
こんばんわ.
引用:

八兵衛さんの書き込み (2005-10-13 16:59) より:

中身を見てから、削除するよう致します。


中身を見てもわからないでしょう?
むしろ mailq で確認すべきかと.

cron でいろいろ指定してる script では e_mail を送るようになっているのですか?
そうでなければ蓄積されはしないでしょう.
八兵衛
会議室デビュー日: 2004/12/20
投稿数: 18
投稿日時: 2005-10-20 22:47
少し日が経ちましたが、ご回答ありがとう御座いました。
メールを調べておりまして、

tar: Removing leading "/" from member names
var/log
var/log/messages
var/log/lastlog
var/log/secure
・・・・・
・・・・

なる内容のファイルが多数蓄積されてます。
1行目のメッセージは、調べたところ、
『tarコマンドで使用の余分の"/"は取り除きましたよ』
なるメッセージで実害はないようです。
当方、tarコマンドは、-zcvfや-cvfを引数にしております。
『-Pオプションを付けて絶対パスでアーカイブすればこのメッセージは出なくなるが、復元の時に絶対パスで復元するので不幸になるかも。』
とのスレ有り。

当方、試しに-zcfや-cfにすると(vを取ると)先ほどの(スプールの)内容は、
tar: Removing leading "/" from member names
のみとなり、大幅にファイル容量が減りました。
詳細表示情報は得られませんが、相対パスでのアーカイブを希望しますので、この方法で行こうかと考えた次第です。

何かご意見など御座いましたら、ご指摘ください。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-10-20 23:39
こんばんわ.
引用:

八兵衛さんの書き込み (2005-10-20 22:47) より:

メールを調べておりまして、

tar: Removing leading "/" from member names
var/log
var/log/messages
var/log/lastlog
var/log/secure
・・・・・
・・・・

なる内容のファイルが多数蓄積されてます。
1行目のメッセージは、調べたところ、
『tarコマンドで使用の余分の"/"は取り除きましたよ』
なるメッセージで実害はないようです。
当方、tarコマンドは、-zcvfや-cvfを引数にしております。
『-Pオプションを付けて絶対パスでアーカイブすればこのメッセージは出なくなるが、復元の時に絶対パスで復元するので不幸になるかも。』
とのスレ有り。


途中から話が少し変わっているようですが,
spool されているものを取り除きたいのではなかったのでしょうか?
それとも「送られている内容が気になる」ということだったのでしょうか?
前者であれば「送らないようにする」とか「別の方法で伝達する」ことで
回避できるでしょうけど,
後者の場合は「その script はどんな内容ですか?」が先ではないかと.

「蓄積されている」内容は八兵衛様の想像で概ね間違いではないでしょうけど,
それは「cron で script 処理をした結果を e_mail で送信している」
からではないかと見受けられます.
だとしたらそもそも「そういった処理がなされていることを把握されていますか?」
ということであり,その辺から話をされるべきかと.

ちなみに,script の目的は log の backup でしょうか?
RHEL なら log は logrotate で自動的に backup されていて,
記憶の限りでは default で weekly×3ヶくらい残っていると思います.
つまり,上記の通りなら過去 3weeks くらいの log は
HDD 上に残ったままで,それより旧いものは順次削除されていると思います.
なので,目的が log の backup なら
それらの archive を採取することをお奨めします.
相対 path で採取するなら,/var/log に change directory してから
tar で採取すればよろしいのではないかと.
そうすれば var/log という directory を含まずに archive できます.

以上,ご参考までに.
jk
ベテラン
会議室デビュー日: 2005/08/19
投稿数: 94
投稿日時: 2005-10-21 10:22
こんにちは

/var/spool/clientmqueueに入っているのは cronの所有者宛のメールじゃないですか?
cronで実行されたときに出力された時の通知メールだと思いますが....

cronで出力されるものをログファイルなどにリダイレクトする等すればいいんじゃないですか?

引用:

当方、試しに-zcfや-cfにすると(vを取ると)先ほどの(スプールの)内容は、
tar: Removing leading "/" from member names
のみとなり、大幅にファイル容量が減りました。


標準出力が減ったので通知メールの内容が縮小するのは当たり前です。


コード:
#標準エラーだけをログに吐く場合(標準出力は通知メールで配信される)
0 2 * * * /usr/local/bin/コマンド 2> /home/USER/cron.log
#標準エラー標準出力をログに吐く場合(通知メールは配信されない)
0 2 * * * /usr/local/bin/コマンド 2>&1 > /home/USER/cron.log
#何もいらない場合。(無論、通知メールは配信されない)
0 2 * * * /usr/local/bin/コマンド 2>&1 > /dev/null



はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2005-10-21 16:39
こんにちは。

引用:

八兵衛さんの書き込み (2005-10-13 13:59) より:
このファイルは、sendmailの待ちファイルの様なのですが、
sendmailのサービスを当方、止めており、そのため増え続けてるのでしょうか?
cronでスクリプトを色々指定しておりますが関係はありますか。その結果がファイルの内容なのでしょうか?


sendmail の(処理)待ちファイルであることは正解ですが、
sendmail のサービスを止めていることが直接の原因ではないと思います。
(関係はあるのですが)

根本的な原因は、お気づきのようですが(みなさんからもご指摘があるように)、
cron などからメールが出されているためです。
具体的には、cron で起動するように設定したスクリプトを、
手動で実行してみて、何か表示されるようでしたら、
その内容がそのままメールになるとお考えください。

また、sendmail を起動していれば、
これらのファイルをメールとして配送してくれる(そして、削除してくれる)のですが、
Submission 用の処理をするようになっていなければ、
これらのファイルは増え続ける可能性があります。
(つまり、sendmail で処理されることはありません)
sendmail の起動スクリプトの中に、

 /usr/sbin/sendmail -Ac -q30m

などが記述されていれば、処理されるので大丈夫なのですが。


引用:

増え続けるのを止めたいし、大きなこのファイルを何とか(削除)したいのですが、
どうすれば、良いのでしょうか?


増え続けるのを止めたければ、
各プロセス(cron 等)からメールを出さないようにすることです。
または、sendmail を起動して、メールが配送されるようにします。

現在 /var/spool/clientmqueue の下にあるものが、
メールとして不要であれば、rm で削除してしまっても問題ありませんが、
(sendmail も停止していることですし)
メールの中には、cron 以外からのメールも含まれているかもしれません。
ファイル名の 「df*(←メールの本文)」 と 「qf*(←メールの配送情報)」 は、
「*」 が一致しているもので 1組になっていますので、
削除なさる場合は一緒に削除するようにしてください。

メールとして必要であれば、
Submission 用の処理をするようにしてあるのなら、sendmail を起動しただけで
メールが配送されます。
(sendmail 等の設定が完了しており、起動スクリプトを使って起動する場合を想定しています)
sendmail を起動して、しばらく経っても配送されない(ファイル数が減らない)ようでしたら、
(つまり、Submission 用の処理をするようになっていなければ、)

 # sendmail -Ac -q

とすることで、一時的に配送させることができます。
(再び ”待ち” になったものは除きます)
ただし、あまりにも古い日付のメールがユーザに届くと、
混乱を招く場合がありますので、ご注意ください。

現在、何通のメールが溜まっているかは、

 # mailq -Ac

で確認することができます。
表示された最初または最後の行を見るか、
上記コマンドをパイプで繋いで head -n1 とすると、
表示が少なくて分かりやすいと思います。

[ メッセージ編集済み 編集者: はゆる 編集日時 2005-10-21 18:52 ]
1

スキルアップ/キャリアアップ(JOB@IT)