Zamknięte jako nie na temat, ale niezwykle przydatne.
unfa
Odpowiedzi:
150
Możesz po prostu usunąć /var/mail/usernameplik, aby usunąć wszystkie wiadomości e-mail dla konkretnego użytkownika. Ponadto wiadomości e-mail wychodzące, które nie zostały jeszcze wysłane, zostaną zapisane /var/spool/mqueue.
Adres e-mail w pytaniu, który odbiera wszystkie e-maile cron, to [email protected]. Chcę tylko wyczyścić wszystkie e-maile otrzymane w tym e-mailu, pozostawiając inne nietknięte. usunięcie / var / www / nazwa użytkownika spowoduje usunięcie wszystkich, prawda?
anjan
3
usernamenależy zastąpić użytkownikiem, dla którego chcesz usunąć wiadomości e-mail. W twoim przypadku wiadomości e-mail są wysyłane do dzwoniącego użytkownika cron_results, więc musisz je usunąć /var/www/cron_results.
EdoDodo,
5
Nie jest to dobra praktyka manipulacji danymi spoza aplikacji. Jeśli istnieje opcja lub polecenie, które może wykonać zadanie, lepiej go użyć. W odpowiedzi na @timaschew możesz użyć polecenia „d” w narzędziu poczty.
pocjoc
1
Bardzo praktyczne, gdy „mail” odpowiada tylko „Za mało pamięci - przerwane”.
Herbert Van-Vliet,
398
alternatywny sposób:
mail -N
d *
quit
-NBlokuje początkowe wyświetlanie nagłówków wiadomości podczas czytania wiadomości lub edytowania folderu poczty. d *usuń wszystkie maile
Działa dla mnie w prawie waniliowym Debianie 7.5. Alternatywnie można usunąć wszystkie zapisane wiadomości e-mail po prostu wpisując > mboxkatalog domowy, to po prostu obcina plik mbox.
Ciantic
4
@andreas: wystarczy dodać, że działa z powodzeniem na CentOS 6.5.
Guillaume G.
3
Pracowałem także dla mnie przy Debian Wheezy (7.6)
yuikonnu,
2
pracuje na serwerze Ubuntu 14.04
uczeń
60
Po prostu użyj:
mail
d 1-15
quit
Które usunie wszystkie wiadomości od numeru 1 do 15. Aby usunąć wszystkie, użyj d *.
Właśnie tego użyłem na Ubuntu 12.04.4 i działało to jak urok.
Na przykład:
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
Następnie sprawdź ponownie swoją pocztę:
eric@dev ~ $ mail
No mail for eric
eric@dev ~ $
To, co cię denerwuje, to to, że używasz xlub exitrezygnujesz, co przywraca zmiany podczas tej sesji.
Nie ma między nimi d*przynajmniej miejsca CentOS 7.
CodeMed
7
Używanie, exita nie quitpotykanie mnie. exitprzerwie sesję, więc wszelkie wiadomości oczekujące na usunięcie pozostaną nienaruszone. quitzapisze zmiany z powrotem, więc usunięte wiadomości e-mail są zatwierdzane w tym momencie.
Jason
d 1-15działa na Debianie 8. Dzięki!
Tadej
Nie działa w Red Hat. d 1-15 podaje „Nielegalną liczbę”. Podobnie d *.
Salvador Valencia
23
Zamiast usuwać, myślę, że możemy anulować plik, ponieważ plik zostanie utworzony, jeśli usługa pocztowa jest nadal włączona. Coś takiego jak podążanie wykona zadanie
cat /dev/null >/var/spool/mail/tomlinuxusr
I tak, przepraszam, że przebudziłem ten stary wątek, ale czułem, że mogę wnieść swój wkład.
Jeśli używasz cyrus / sasl / imap na swoim serwerze pocztowym, to jednym z szybkich i skutecznych sposobów na wyczyszczenie wszystkiego w skrzynce pocztowej, która jest starsza niż określona liczba dni, jest użycie polecenia cyrus / imap ipurge . Na przykład, oto przykład usuwania wszystkiego (bądź ostrożny !!), starszy niż 30 dni od użytkownika vleo . Zauważ, że musisz być zalogowany jako użytkownik Cyrus (administrator poczty Imap):
[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
Odpowiedzi:
Możesz po prostu usunąć
/var/mail/username
plik, aby usunąć wszystkie wiadomości e-mail dla konkretnego użytkownika. Ponadto wiadomości e-mail wychodzące, które nie zostały jeszcze wysłane, zostaną zapisane/var/spool/mqueue
.źródło
username
należy zastąpić użytkownikiem, dla którego chcesz usunąć wiadomości e-mail. W twoim przypadku wiadomości e-mail są wysyłane do dzwoniącego użytkownikacron_results
, więc musisz je usunąć/var/www/cron_results
.alternatywny sposób:
-N
Blokuje początkowe wyświetlanie nagłówków wiadomości podczas czytania wiadomości lub edytowania folderu poczty.d *
usuń wszystkie maileźródło
> mbox
katalog domowy, to po prostu obcina plik mbox.Po prostu użyj:
Które usunie wszystkie wiadomości od numeru 1 do 15. Aby usunąć wszystkie, użyj
d *
.Właśnie tego użyłem na Ubuntu 12.04.4 i działało to jak urok.
Na przykład:
Następnie sprawdź ponownie swoją pocztę:
To, co cię denerwuje, to to, że używasz
x
lubexit
rezygnujesz, co przywraca zmiany podczas tej sesji.źródło
d*
przynajmniej miejscaCentOS 7
.exit
a niequit
potykanie mnie.exit
przerwie sesję, więc wszelkie wiadomości oczekujące na usunięcie pozostaną nienaruszone.quit
zapisze zmiany z powrotem, więc usunięte wiadomości e-mail są zatwierdzane w tym momencie.d 1-15
działa na Debianie 8. Dzięki!Zamiast usuwać, myślę, że możemy anulować plik, ponieważ plik zostanie utworzony, jeśli usługa pocztowa jest nadal włączona. Coś takiego jak podążanie wykona zadanie
I tak, przepraszam, że przebudziłem ten stary wątek, ale czułem, że mogę wnieść swój wkład.
źródło
Jedna wkładka:
źródło
yes 'd' | mail
działa zgodnie z oczekiwaniami.W systemach UNIX / Linux / Mac OS X można kopiować i zastępować pliki, prawda? A co z tym rozwiązaniem:
źródło
Jeśli używasz cyrus / sasl / imap na swoim serwerze pocztowym, to jednym z szybkich i skutecznych sposobów na wyczyszczenie wszystkiego w skrzynce pocztowej, która jest starsza niż określona liczba dni, jest użycie polecenia cyrus / imap ipurge . Na przykład, oto przykład usuwania wszystkiego (bądź ostrożny !!), starszy niż 30 dni od użytkownika vleo . Zauważ, że musisz być zalogowany jako użytkownik Cyrus (administrator poczty Imap):
[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
źródło
Zamiast używać „d”, dlaczego nie „p”. Nie jestem pewien, czy „p *” zadziała. Nie próbowałem tego. Możesz; jednak użyj następującego skryptu „
źródło