Поиск по этому блогу

вторник, 30 апреля 2013 г.

Очистка почтовой очереди (Postfix)

Посмотреть текущее состояние очереди можно так:
postqueue -p
sendmail -bp
mailq
Очистить всю очередь можно, например, так:
postsuper -d ALL
А вот как можно почистить очередь от конкретного отправителя:
postqueue -p | tail +2 | awk 'BEGIN { RS = "" } $7~/^MAILER-DAEMON$/ { print $1 }' | tr -d '*!' | postsuper -d -
в данном случае мы убрали из очереди все сообщения от MAILER-DAEMON. Если, к примеру, есть желание удалить все сообщения из очереди от чудных отправителей доменов @church.com и @88db.co.id (ага, поймал недавно доверенный клиент вирус) то сделать это можно просто соответствующим образом поменяв регулярное выражение:
postqueue -p | tail +2 | awk 'BEGIN { RS = "" } $7~/\@(church\.com|88db\.co\.id)$/ { print $1 }' | tr -d '*!' | postsuper -d -
Кстати можно использовать вызов и через xargs:
postqueue -p | tail +2 | awk 'BEGIN { RS = "" } $7~/^MAILER-DAEMON$/ { print $1 }' | tr -d '*!' | xargs postsuper -d
но на мой взгляд вариант с "| postsuper -d -" более наглядный, да и в случае с очень-очень большим размером очереди за ним не так скучно наблюдать ;) А вот какой из вариантов работает быстрее - не скажу, не проверял.

среда, 17 апреля 2013 г.

Удаление дубликатов в MySQL

Для удаления дубликатов в таблице MySQL существует довольно оригинальное решение:
ALTER IGNORE TABLE tablename ADD UNIQUE INDEX(field0, field1, field2);
Суть, надеюсь, ясна ;)