Как очистить почтовый ящик linux с огромным количеством писем? [закрытый]
Я настроил некоторые задания cron, и они отправляют результат crons на электронную почту. Сейчас за эти месяцы у меня накопилось огромное количество писем.
теперь мой вопрос: как я могу удалить все эти письма из моего почтового ящика?
8 ответов:
вы можете просто удалить
/var/mail/usernameфайл для удаления всех сообщений электронной почты для конкретного пользователя. Кроме того, электронные письма, которые исходят, но еще не были отправлены, будут сохранены в/var/spool/mqueue.
альтернативный способ:
mail -N d * quit
-Nзапрещает начальное отображение заголовков сообщений при чтении почты или редактировании папки почты.d *удалить все сообщения
просто использовать:
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чтобы выйти, который откатывает изменения во время этого сеанса.
вместо удаления, я думаю, что мы можем аннулировать файл, потому что файл будет создан, если почтовая служба все еще включена. Что-то вроде следующего будет делать работу
cat /dev/null >/var/spool/mail/tomlinuxusrи да, извините за пробуждение этой старой темы, но я чувствовал, что могу внести свой вклад.
в UNIX / Linux / Mac OS X вы можете копировать и переопределять файлы, не так ли? Так как насчет этого решения:
cp /dev/null /var/mail/root
вместо того, чтобы использовать "d", почему бы не "p". Я не уверен, что "p *" будет работать. Я этого не пробовал. Вы можете; однако используйте следующий скрипт"
#!/bin/bash # MAIL_INDEX=$(printf 'h a\nq\n' | mail | egrep -o '[0-9]* unread' | awk '{print }') markAllRead= for (( i=1; i<=$MAIL_INDEX; i++ )) do markAllRead=$markAllRead"p $i\n" done markAllRead=$markAllRead"q\n" printf "$markAllRead" | mail
Если вы используете cyrus / sasl / imap на своем почтовом сервере, то один быстрый и эффективный способ очистить все в почтовом ящике, который старше указанного количества дней, - это использовать cyrus/imap ipurge. Например, вот пример удаления всего (будьте осторожны!!), старше 30 дней от пользователей vleo. Обратите внимание, что вы должны войти в систему как Кир (администратор почты 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
Comments