Bazı cron işleri ayarladım ve onlar crons sonucu bir e-posta gönderir. Şimdi aylar boyunca çok sayıda e-posta biriktirdim.
Şimdi sorum şu: Tüm bu e-postaları posta kutumdan nasıl temizleyebilirim?
Bazı cron işleri ayarladım ve onlar crons sonucu bir e-posta gönderir. Şimdi aylar boyunca çok sayıda e-posta biriktirdim.
Şimdi sorum şu: Tüm bu e-postaları posta kutumdan nasıl temizleyebilirim?
Yanıtlar:
/var/mail/username
Belirli bir kullanıcının tüm e-postalarını silmek için dosyayı silebilirsiniz. Ayrıca, giden ancak henüz gönderilmemiş e-postalar da depolanacaktır /var/spool/mqueue
.
username
, e-postalarını kaldırmak istediğiniz kullanıcıyla değiştirilmelidir. Sizin durumunuzda, e-postalar çağrılan kullanıcıya gönderilir cron_results
, böylece silmeniz gerekir /var/www/cron_results
.
alternatif yol:
mail -N
d *
quit
-N
Posta okurken veya posta klasörünü düzenlerken mesaj başlıklarının ilk görüntülenmesini engeller.
d *
tüm postaları sil
> mbox
ana dizine yazarak silmek isteyebilirsiniz , bu sadece mbox dosyasını keser.
Sadece kullan:
mail
d 1-15
quit
1 ile 15 arasındaki tüm iletileri siler. Tümünü silmek için d *
.
Ben sadece kendimi Ubuntu 12.04.4'te kullandım ve bir cazibe gibi çalıştı.
Örneğin:
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
Ardından postanızı tekrar kontrol edin:
eric@dev ~ $ mail
No mail for eric
eric@dev ~ $
Sizi harekete geçiren şey, o oturum sırasında değişiklikleri geri alan x
veya exit
çıkmak için kullanmanızdır .
d*
En azından üzerinde arasında boşluk yok CentOS 7
.
exit
ziyade kullanmaktı quit
. exit
oturumu iptal eder, böylece silinmeyi bekleyen e-postalar olduğu gibi kalır. quit
değişiklikleri geri yazacağından silinen e-postalar bu noktada işlenir.
d 1-15
Debian 8 üzerinde çalışıyor. Teşekkürler!
Silmek yerine, dosyayı geçersiz kılabiliriz, çünkü posta hizmeti hala açıksa dosya oluşturulur. Aşağıdaki gibi bir şey işi yapacak
cat /dev/null >/var/spool/mail/tomlinuxusr
Ve evet, bu eski ipliği uyandırdığım için üzgünüm ama katkıda bulunabileceğimi hissettim.
Bir astar:
echo 'd *' | mail -N
yes 'd' | mail
beklendiği gibi çalışır.
UNIX / Linux / Mac OS X'te dosyaları kopyalayıp geçersiz kılabilirsiniz, değil mi? Peki bu çözüme ne dersiniz:
cp /dev/null /var/mail/root
Posta sunucunuzda cyrus / sasl / imap kullanıyorsanız, daha eski bir posta kutusundaki her şeyi temizlemenin hızlı ve etkili bir yolu, belirtilen gün sayısı cyrus / imap ipurge komutunu kullanmaktır. Örneğin, kullanıcı vleo'dan 30 günden eski olan her şeyi (dikkatli olun !!) kaldıran bir örnek . Cyrus (imap posta yöneticisi) kullanıcısı olarak oturum açmanız gerektiğine dikkat edin :
[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
"D" kullanmak yerine, neden "p" kullanmıyorsunuz? "P *" nin çalışıp çalışmadığından emin değilim. Bunu denemedim. Yapabilirsin; ancak şu komut dosyasını kullanın "
#!/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