• 締切済み

非常にこまっています。

非常に困っています。 助けていただければ幸いです。 特定のアドレスから来る以下条件のメールをサーバ上で削除したいのですが。何方か知恵を貸していただければ幸いです。 --条件---- サーバ:sendmail 対象アカウント数:200以上 到着時間:ばらばら OS:solaris8 一挙に消したいのでroot権限で/var/mailをさわるスクリプト等を動かしたいです。 教えていただければ非常にありがたいです。

みんなの回答

  • e-marimo
  • ベストアンサー率24% (9/37)
回答No.5

ちょっと考えてみましたが、作業自体は時間が掛かってもmboxに反映させるのを一瞬ですませば良いのではないかな・・・と思います。たとえば mboxを/tmp等へコピーし削除スクリプトをコピーに実行する。そして確実に削除され他のメールに影響が出ていないかdiffで確認して完了したら/tmpのmboxと実物のmboxと入れ換えるってかんじです。 これだと確認に手間が掛かりそうですが良いのではないかと思います。めんどくさいと言ってしまえばそれまでですが・・・

全文を見る
すると、全ての回答が全文表示されます。
  • e-marimo
  • ベストアンサー率24% (9/37)
回答No.4

書き込んでからちょっと勘違いしてるかな?と思い連書きです。 filter 等の処置はすでにされてるんですよね。 失礼しました。 つまり一度受信してしまった物を一瞬ですべて削除したいということですか? mbox型のメールboxが200ほどあってある程度メールも溜っているとなるとちょっと時間かかりそうな気もしますが、それをやるならばすべてCで書くしかないですね。 んー残念ながらちょっと力及ばずです。すいません。

sun_solaris
質問者

お礼

ご返答ありがとうございます。やっぱ難しいですかね。力の無さを実感しています。

全文を見る
すると、全ての回答が全文表示されます。
  • e-marimo
  • ベストアンサー率24% (9/37)
回答No.3

そうすると、やりたい事は一回限りの検索削除ではなく恒久的にそこからのスパムの受信を制限したいのでなんとかしたいって事ですね。 受信する前に制限をかけるのであれば、すでに相当プログラミングのスキルをお持ちのようですのでCで受信を監視するデーモンを書いてしまうのも手ですが、もうひとつの手段として、サーバ上でスパムアサシンとprocmailを使い排除したほうがかなり効率的だと思いますがいかがでしょうか。 現在のバージョンのスパムアサシンは強力な学習型filterを採用していてかなり使えます。

参考URL:
http://spamassassin.apache.org/
全文を見る
すると、全ての回答が全文表示されます。
  • e-marimo
  • ベストアンサー率24% (9/37)
回答No.2

そのメールの本文でもヘッダでもいいのでなにか共通するキーワードを見付けるのが早いかと思います。 それをキーにして検索削除スクリプトを組んでしまえばあとは簡単です。ただ実行するときは全てのメッセージをバックアップするのを忘れずに。

sun_solaris
質問者

補足

ご返答ありがとうございます。 送信元が一緒なのでそれを条件としたいのですがこれを利用したスクリプトが知りたいのです。。 基本的にperlでmailx、awk、grep等を組み合わせてある程度できたのですが、これでは一旦受信してからの話になるので一括処理的な意味で問題があります。 つまり遅いという事です。 なにかご存知ないですか? 当方はawk、tcl、perl、c,c++は基本レベルですがあつかえます。

全文を見る
すると、全ての回答が全文表示されます。
  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.1

肝心なsendmailのバージョンが書かれていない。 「特定のアドレスから来る」とは、外部(他ドメイン)からのメールを指しているのか? わからないことが多いので、アドバイスになりますが、 スパムメール対策がしたいのであれば、 /etc/mail/access (access.db) で、中継させたくないメールアドレスを指定して、 discard(メール破棄・エラーを返さない)する方法はどうでしょう? http://itpro.nikkeibp.co.jp/linux/etc-reference/sendmail.shtml

sun_solaris
質問者

補足

早速の回答ありがとうございます。 そして説明不足ですいません。 既に受信してしまっている分を削除したいのです。 sendmailの設定等でフィルタをかけるわけではありません。 その辺の対策は済んでおり2度とこないメールです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • sendmail サーバ使ってると/var/mail/root が肥大化して困ってます

    smtp サーバを、外部公開運用しています。 1年くらい使っているのですが、最近コンピュータの調子が悪いので、 よく見てみると、「/var/mail/root」というファイルが 1GB近くに肥大化してました。 このまま放置しておくと、ディスクがパンクする気配です。(危険(‥;)) このファイルって、削除しちゃっても構わないものなんでしょうか? (環境は、Solaris 2.7 でsendmail サーバ使ってます。) どなたか分かる方いらしゃいましたら、教えてくださいませ。

  • CentOS:他のユーザにソースを見られたくない

    CentOS初心者です。 私が構築しroot権限を持っているWEBシステム用のCentOSサーバがあります。 /var/www/html 以下にPHPスクリプトを置いているのですが、このスクリプトのソースを他のユーザに見られたくない場合どのようにすれば良いでしょうか? 現在はとりあえず /var/www/html 以下全ての所有者を apache に変更し、パーミッションを700にしています。 他にいい方法がありましたらお詳しい方教えて頂けると幸いです。 宜しくお願い致します。

  • メールサーバの/var/spool/mail にあるrootファイルを開きたい

    RedHatLinux9でメールサーバをDMZ側に構築しました。 メールサーバはsendmailとUWIMAPを使用しています。 メールがおかれているところは、/var/spool/mail だと思うのですが、 今日、FTPソフトで、/var/spool/mailの中をのぞいてみると、 rootのファイルがおかれていて、メールが届いているようでした。 rootのメールを受け取るように設定はした覚えがないのですが、どうしてこのようなファイルがあるのでしょうか? とりあえず、開いてみようとOutlookExpressでrootのアカウントとパスワードの設定をしたのですが、受信しようとすると、パスワードを聞かれてしまい、Linuxで使用しているパスワードではないようです。 どうやったら、このメールを見ることができますか?

  • Sendmailで送受信メールを数えたい

    Solaris 7(Sparc) + Sendmail です。1日当たり何通のメールが 送受信されているか知りたいのですが: Jul 7 03:22:13 mail sendmail[12119]: DAA12119: ===以下略=== syslogの第6フィールド「DAA12119」の部分で、一意なものだけ の数が、送受信されたメールの数に一致するのでしょうか? また、第5(sendmail[12119]:)、第6フィールド(DAA12119) の意味の違いは何でしょうか? もしくは、他にメール数をカウントするより良い手段がある場合 ご教授願います(root権限使用可能)。

  • サーバ起動時にある特定のユーザ権限でシェルを動かす

    Ubuntuを使っています。 サーバ起動時にある特定ユーザ権限でシェルを動かしたいと思っています。 /etc/rc3.d において起動スクリプトを記載するとroot権限で起動します。 ある特定のユーザ権限で特定のシェルを動かしたい場合、どのようにすればいいのでしょうか? ご存じの方、ご教示お願いします。

  • 受信、送信メールの復元方法

    Linuxのsendmailでメールサーバーを構築していますが、メールの生ログから、/var/mail/アカウント名をcatで見たときのように変換することは可能なのでしょうか?また、変換して/var/mail/アカウント名に追記すれば、もう一度クライアントで受信することは可能でしょうか?

  • sendmailからqmail:CGIから送れない

    こんばんわ。 sendmailコマンド置換えについてです。 OS:Fedora7 メールサーバー:qmailとdovecot vpopなど使ってます。 メールサーバーについては、 バーチャルでもローカルからは送受信出来てます。 cgiがユーザーさんがHPのcgiからメールを送って来ると、 内容を自動返信するような感じのcgiですが。 テストでやってみても。 ローカルの受信すら来ない状態です。 もちろん、自動返信で返っても来ません。 以下をしました。 chmod 0 /usr/lib/sendmail chmod 0 /usr/sbin/sendmail mv /usr/lib/sendmail /usr/lib/sendmail.bak mv /usr/sbin/sendmail /usr/sbin/sendmail.bak ln -s /var/qmail/bin/sendmail /usr/lib/sendmail ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail apacheのエラーは、 sh: /usr/sbin/sendmail: Permission denied, referer: http://www.hogehoge.com/cgi-bin/test.cgi Permission関係でしょうか? sendmailをls -lで調べると lrwxrwxrwx 1 root root 23 Jun 5 19:05 /usr/sbin/sendmail -> /var/qmail/bin/sendmail です。 その他調べる箇所ありますでしょうか? 後・・・ 私のサーバーでは、 newaliases とすると・・・ bash: /usr/bin/newaliases: Permission denied になります。 パーミッションは777のroot rootになってます。 宜しくお願いします。

  • rootアカウントに外部からアクセスできない。

    OS:RedHat6.0J ipop3d(バージョン不明) でサーバーを動作させています。 サーバー本体からrootにはアクセスできます。(root権限を所持してます) 困り点 1.windowsPCからTELNET、FTPなどでアクセスするとrootアカウントに直で入れません。 (telnetで一般ユーザーから[su]コマンドでならログインできます) 2.rootのメールアドレスでメールを受信したいのですが、ailasesの設定を行っても転送もしてくれません(sendmail) 要は、root宛てに送られたメールをアウトルックなどのwindowsPCで読みたいです。 どなたか上記の方法の解決策を教えてください。お願いします。

  • root宛のメールを他へメール送信したい

    RedHat Linux 7.3 を使用しています。 cron実行結果などのroot宛メールを別に立てているsendmailサーバ経由で他にメール送信しようと考えています。 sendmailサーバと同じように自分自身でsendmailをサーバとして動かし.forwardで設定すればメール送信できると思うのですが、 その為だけにsendmailをセットアップするのはちょっと面倒です。 もっと簡単にroot宛のメールを他にメール送信する方法はあるのでしょうか?

  • 100個のアカウントを一挙につくりすべてのメールを1つのアカウントに転送させたい

    CentOS4をレンタルサーバ(VPS)上で運用しており、 (バーチャルなroot権限もあります) PHP(mod_phpおよびcli_php、いずれもバージョン5)が入ってます。 また、シェルスクリプトは一通り使えますが、 自分の能力がほとんどゼロです。 (PHPならなんとか) で、やりたいことがあるのですが、 fgsdfjsd gdfiosfgsd sdfohfds sdfhfsd fsdfshdj (中略) jgfjhgdfk dfsfjsdjfdsklf というランダムなアカウントを100個つくり (できれば、SSHアクセスも可能にしたい)、 さらにそれぞれのメアドをすべて、エイリアス(sendmail使ってます)で、 hoge というアカウントに転送させたいと思っています。 これをadduserコマンドやwebminで1つ1つ設定するのは大変なので、 いい解決策はないでしょうか? cshなどほとんど無知ですが、 無知ながらも実現できればかまいません。 PHP5なら、特に、問題はありません。 どなたか解決方法をおわかりのかた、お教えいただければ幸いです。