বিপুল সংখ্যক ইমেল সহ আমি কীভাবে একটি লিনাক্স মেল বাক্স মুছে ফেলতে পারি? [বন্ধ]


193

আমার কিছু ক্রোন জব সেটআপ হয়েছে এবং তারা ক্রোনস ফলাফলটি একটি ইমেইলে প্রেরণ করে। এখন কয়েক মাস ধরে আমি বিপুল সংখ্যক ইমেল সংগ্রহ করেছি।

এখন আমার প্রশ্ন হল আমি কীভাবে এই সমস্ত ইমেলগুলি আমার মেলবক্স থেকে পরিষ্কার করতে পারি?


1
আপনি যদি কেবল ক্রোন বার্তাগুলি এবং অন্যান্য বার্তাগুলি না থেকে পরিষ্কার করতে চান তবে এখানে দেখুন: unix.stackexchange.com/questions/217143/…
সেগাল-হালেভি

3
অফ-টপিক হিসাবে বন্ধ, তবে ব্যাপকভাবে কার্যকর।
আনফা

উত্তর:


150

/var/mail/usernameনির্দিষ্ট ব্যবহারকারীর জন্য সমস্ত ইমেল মুছতে আপনি কেবল ফাইলটি মুছতে পারেন । এছাড়াও, বহির্গামী হওয়া কিন্তু এখনও প্রেরণ করা হয়নি এমন ইমেলগুলি সংরক্ষণ করা হবে /var/spool/mqueue


সমস্ত ক্রোন ইমেল প্রাপ্ত প্রশ্নে ইমেলটি cron_results@site.com বলে। আমি অন্যকে অক্ষত রেখে কেবল এই ইমেলটিতে প্রাপ্ত সমস্ত ইমেলগুলি মুছে ফেলতে চাই। / var / www / ব্যবহারকারীর নাম মুছে ফেললে সব মুছে যাবে, তাই না?
অঞ্জন

3
usernameআপনি যে ইমেলগুলি মুছে ফেলতে চান তার সাথে প্রতিস্থাপন করতে হবে। আপনার ক্ষেত্রে, ইমেলগুলি কল করা ব্যবহারকারীকে প্রেরণ করা হচ্ছে cron_results, তাই আপনাকে মুছতে হবে /var/www/cron_results
এডোডোডো

5
এটি কোনও অ্যাপ্লিকেশনের বাইরে থেকে প্র্যাক্সিস ডেটা ম্যানিপুলেশন নয়। যদি কাজ করতে পারে এমন কোনও বিকল্প বা কমান্ড থাকে তবে এটি ব্যবহার করা ভাল। @ টিমাসশেও উত্তর হিসাবে, আপনি মেল সরঞ্জামের ভিতরে 'd' কমান্ডটি ব্যবহার করতে পারেন।
পোকজোক

1
খুব কার্যকর যখন 'মেল' কেবল 'পর্যাপ্ত মেমরি নয় - পরিত্যাগ করা' এর সাথে সাড়া দেয় practical
হারবার্ট ভ্যান-ভ্লিয়েট

398

বিকল্প উপায়:

mail -N
d *
quit

-Nমেল পড়ার সময় বা কোনও মেল ফোল্ডার সম্পাদনা করার সময় বার্তা শিরোনামগুলির প্রাথমিক প্রদর্শনকে বাধা দেয়।
d *সমস্ত মেল মুছুন


6
ডেবিয়ান কাজ করে না 7.
karatedog

4
এটি প্রায় ভ্যানিলা দেবিয়ান 7.5-এ আমার জন্য কাজ করেছিল। বিকল্পভাবে কেউ কেবল > mboxহোম ডিরেক্টরিতে টাইপ করে সমস্ত সংরক্ষিত মেলগুলি মুছতে চান , এটি কেবল এমবক্স ফাইলটি ছাঁটাই করে।
সায়েন্টিক

4
@ অ্যান্ড্রেয়াস: এটি কেবলমাত্র সেন্টস 6.5 এ সফলভাবে কাজ করে যুক্ত করুন add
গিলিয়াম জি।

3
এছাড়াও ডেবিয়ান হুইজি (
.6..6

2
উবুন্টু 14.04 সার্ভারে কাজ করছে
ছাত্র

60

শুধু ব্যবহার করুন:

mail
d 1-15
quit

যা 1 এবং 15 নম্বরের মধ্যে সমস্ত বার্তা মুছে ফেলবে all সমস্ত মুছতে, ব্যবহার করুন d *

আমি কেবল এটি নিজেকে ওবুন্টু 12.04.4 এ ব্যবহার করেছি এবং এটি একটি কবজির মতো কাজ করেছে।

উদাহরণ স্বরূপ:

eric@dev ~ $ mail
Heirloom Mail version 12.4 7/29/08.  Type ? for help.
"/var/spool/mail/eric": 2 messages 2 new
>N  1 Cron Daemon           Tue Jul 29 17:43  23/1016  "Cron <eric@ip-10-0-1-51> /usr/bin/php /var/www/sandbox/eric/c"
 N  2 Cron Daemon           Tue Jul 29 17:44  23/1016  "Cron <eric@ip-10-0-1-51> /usr/bin/php /var/www/sandbox/eric/c"
& d *
& quit

তারপরে আপনার মেলটি আবার পরীক্ষা করুন:

eric@dev ~ $ mail
No mail for eric
eric@dev ~ $

আপনাকে কী ট্রিপ করছে তা হ'ল আপনি যা ব্যবহার করছেন xবা exitসেই অধিবেশন চলাকালীন যা পরিবর্তনগুলি ফিরিয়ে আনবে তা ছাড়ুন।


1
d*কমপক্ষে, এর মধ্যে কোনও স্থান নেই CentOS 7
কোডমেড

7
exitপরিবর্তে ব্যবহার করে quitআমাকে ট্রিপ আপ ছিল। exitঅধিবেশনটি বাতিল করে দেবে, সুতরাং মোছা মুলতুবি থাকা কোনও ইমেল অক্ষত থাকবে। quitপরিবর্তনগুলি আবার লিখবেন, সুতরাং মোছা ইমেলগুলি সেই সময়ে প্রতিশ্রুতিবদ্ধ।
জেসন

d 1-15দেবিয়ান 8 এ কাজ করে। ধন্যবাদ!
তাদেজ

রেড হাটে কাজ করে না। d 1-15 'অবৈধ সংখ্যা' দেয়। তাই ডি *।
সালভাদোর ভ্যালেন্সিয়া

23

মুছে ফেলার পরিবর্তে, আমি মনে করি আমরা ফাইলটি বাতিল করতে পারি, কারণ মেল পরিষেবাটি চালু থাকলে ফাইলটি তৈরি করা হবে। নিম্নলিখিত কিছু কাজ করবে

cat /dev/null >/var/spool/mail/tomlinuxusr

এবং হ্যাঁ, এই পুরানো সুতার জাগরণের জন্য দুঃখিত তবে আমি অনুভব করেছি যে আমি অবদান রাখতে পারি।


3
অলসদের জন্যও, কেবল এটি টাইপ করেও এটি কাজ করে:> / var / spool / mail / unixuser
সালভাদোর ভ্যালেন্সিয়া


6

ইউনিক্স / লিনাক্স / ম্যাক ওএস এক্সে আপনি ফাইলগুলি অনুলিপি এবং ওভাররাইড করতে পারেন, তাই না? সুতরাং কিভাবে এই সমাধান সম্পর্কে:

cp /dev/null /var/mail/root

2

আপনি যদি নিজের মেইল ​​সার্ভারে সাইরাস / স্যাসল / ইমপ ব্যবহার করে থাকেন তবে মেলবক্সে পুরানো যে সমস্ত কিছু নির্ধারণের জন্য একটি দ্রুত এবং কার্যকরী উপায়, তারপরে নির্দিষ্ট দিনগুলির মধ্যে সাইরাস / ইমাম্প আইপুজ কমান্ড ব্যবহার করা। উদাহরণস্বরূপ, এখানে একটি উদাহরণ সরানোর সবকিছু (সাবধান থাকো !!), ব্যবহারকারীর কাছ থেকে তারপর 30 পুরোনো দিন vleo । লক্ষ্য করুন, আপনাকে অবশ্যই সাইরাস (ইমপ্যাপ মেল প্রশাসক) ব্যবহারকারী হিসাবে লগ ইন করতে হবে :

[cyrus@mailserver ~]$ /usr/lib/cyrus-imapd/ipurge -f -d 30 user.vleo Working on user.vleo... total messages 4 total bytes 113183 Deleted messages 0 Deleted bytes 0 Remaining messages 4 Remaining bytes 113183


1

"ডি" ব্যবহারের পরিবর্তে, কেন "পি" ব্যবহার করবেন না। "পি *" কাজ করবে কিনা তা আমি নিশ্চিত নই। আমি সেটা চেষ্টা করিনি। আপনি পারেন; তবে নিম্নলিখিত স্ক্রিপ্ট ব্যবহার করুন "

#!/bin/bash
#

MAIL_INDEX=$(printf 'h a\nq\n' | mail | egrep -o '[0-9]* unread' | awk '{print $1}')

markAllRead=
for (( i=1; i<=$MAIL_INDEX; i++ ))
do
   markAllRead=$markAllRead"p $i\n"
done
markAllRead=$markAllRead"q\n"
printf "$markAllRead" | mail

যারা কৌতূহলী তাদের জন্য "প্রিন্ট" এর জন্য "পি" সংক্ষিপ্ত।
আইসিয়াস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.