मेरे पास कुछ क्रॉन जॉब्स हैं और वे क्रोन परिणाम को एक ईमेल पर भेजते हैं। अब कुछ महीनों में मैंने बड़ी संख्या में ईमेल जमा किए हैं।
अब मेरा सवाल यह है कि मैं अपने मेलबॉक्स से उन सभी ईमेलों को कैसे शुद्ध कर सकता हूं?
मेरे पास कुछ क्रॉन जॉब्स हैं और वे क्रोन परिणाम को एक ईमेल पर भेजते हैं। अब कुछ महीनों में मैंने बड़ी संख्या में ईमेल जमा किए हैं।
अब मेरा सवाल यह है कि मैं अपने मेलबॉक्स से उन सभी ईमेलों को कैसे शुद्ध कर सकता हूं?
जवाबों:
आप /var/mail/username
किसी विशिष्ट उपयोगकर्ता के सभी ईमेल को हटाने के लिए फ़ाइल को हटा सकते हैं। इसके अलावा, जो ईमेल आउटगोइंग हैं, लेकिन अभी तक भेजे नहीं गए हैं उन्हें स्टोर किया जाएगा /var/spool/mqueue
।
username
उस उपयोगकर्ता के साथ प्रतिस्थापित किया जाना चाहिए जिसके लिए आप ईमेल निकालना चाहते हैं। आपके मामले में, ईमेल उपयोगकर्ता को भेजे जा रहे हैं cron_results
, इसलिए आपको हटाना होगा /var/www/cron_results
।
वैकल्पिक तरीका:
mail -N
d *
quit
-N
मेल पढ़ने या मेल फ़ोल्डर को संपादित करते समय संदेश हेडर के प्रारंभिक प्रदर्शन को रोकता है।
d *
सभी मेल हटाएं
> mbox
होम डायरेक्टरी में टाइप करने के साथ सभी सहेजे गए मेल को हटाना चाहता है , यह सिर्फ एमबॉक्स फाइल को ट्रंक करता है।
महज प्रयोग करें:
mail
d 1-15
quit
जो सभी को हटाने के लिए नंबर 1 और 15. के बीच सभी संदेशों को हटा देगा, का उपयोग करेगा d *
।
मैंने अभी खुद को ubuntu 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
छोड़ रहे हैं, जो उस सत्र के दौरान हुए परिवर्तनों को वापस ले रहा है।
d*
कम से कम, के बीच कोई जगह नहीं है CentOS 7
।
exit
बजाय का उपयोग कर quit
मुझे ट्रिपिंग था। exit
सत्र को समाप्त कर देगा, इसलिए कोई भी ईमेल जो लंबित है उसे हटा दिया जाएगा। quit
परिवर्तन वापस लिखेंगे, इसलिए हटाए गए ईमेल उस बिंदु पर प्रतिबद्ध हैं।
d 1-15
Debian पर काम करता है 8. धन्यवाद!
हटाने के बजाय, मुझे लगता है कि हम फ़ाइल को शून्य कर सकते हैं, क्योंकि मेल सेवा अभी भी है तो फ़ाइल बनाई जाएगी। निम्नलिखित कुछ काम करेंगे
cat /dev/null >/var/spool/mail/tomlinuxusr
और हां, इस पुराने सूत्र को जगाने के लिए खेद है लेकिन मुझे लगा कि मैं इसमें योगदान दे सकता हूं।
एक लाइन:
echo 'd *' | mail -N
yes 'd' | mail
उम्मीद के मुताबिक काम करता है।
UNIX / Linux / Mac OS X पर आप फ़ाइलों को कॉपी और ओवरराइड कर सकते हैं, नहीं? तो इस समाधान के बारे में कैसे:
cp /dev/null /var/mail/root
यदि आप अपने मेलसर्वर पर साइरस / sasl / imap का उपयोग कर रहे हैं, तो एक मेलबॉक्स में सब कुछ शुद्ध करने का एक तेज़ और कुशल तरीका जो पुराने है तो साइरस / imap ipurge कमांड का उपयोग करने के लिए निर्दिष्ट दिनों की संख्या है । उदाहरण के लिए, यहां एक उदाहरण सब कुछ हटा रहा है ( लापरवाह हो!), पुराने तो उपयोगकर्ता vleo से 30 दिन । ध्यान दें, कि आपको साइरस (इमैप मेल एडमिनिस्ट्रेटर) के रूप में लॉग इन होना चाहिए :
[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
"डी" का उपयोग करने के बजाय, "पी" क्यों नहीं। मुझे यकीन नहीं है कि अगर "पी *" काम करेगा। मैंने ऐसा प्रयास नहीं किया। आप ऐसा कर सकते हैं; हालाँकि निम्न स्क्रिप्ट का उपयोग करें "
#!/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