[freebsd] Удаление писем по cron-у

27 views
Skip to first unread message

Golub Mikhail

unread,
Jul 4, 2016, 8:20:41 AM7/4/16
to Рассылка FreeBSD UA
Доброго времени суток.

Подскажите, плиз, как лучше реализовать следующее: удаление писем из
ящика по расписанию.

Пользовался раньше этим ftp://ftp.visti.net/pub/tools/mpurge.tgz
Легко и удобно - закинул в планировщик задание типа "удалить письма из
такого-то ящика старше 30 дней" и все довольны.
На новых ОС софт не компилируется. Я не программист, тем более на С,
поэтому в код не вникал.

Есть еще вариант:
/usr/local/bin/mutt -n -e 'push D~d>30d\rq\n' -f /var/mail/user

Из шела работает, а через cron нет. Ошибка "No recipients were specified".

Как с минимальными затратами (без Перла, установки доп. ПО) выполнить
данную задачу?

--
Golub Mikhail

George L. Yermulnik

unread,
Jul 4, 2016, 8:28:36 AM7/4/16
to fre...@uafug.org.ua
Hello!

On Mon, 04 Jul 2016 at 15:18:38 (+0300), Golub Mikhail wrote:

> Как с минимальными затратами (без Перла, установки доп. ПО) выполнить
> данную задачу?

Формат ящика? mbox? Для mbox я когда-то использовал mail/archmbox

--
George L. Yermulnik
[YZ-RIPE]

Eugene Grosbein

unread,
Jul 4, 2016, 8:30:55 AM7/4/16
to Golub Mikhail, Рассылка Free
On 04.07.2016 19:18, Golub Mikhail wrote:
> Доброго времени суток.
>
> Подскажите, плиз, как лучше реализовать следующее: удаление писем из
> ящика по расписанию.
>
> Пользовался раньше этим ftp://ftp.visti.net/pub/tools/mpurge.tgz
> Легко и удобно - закинул в планировщик задание типа "удалить письма из
> такого-то ящика старше 30 дней" и все довольны.
> На новых ОС софт не компилируется. Я не программист, тем более на С,
> поэтому в код не вникал.

Собирается на десятке с минимальным патчем:

--- Makefile.orig 2016-07-04 19:29:12.823677000 +0700
+++ Makefile 2016-07-04 19:28:46.863577000 +0700
@@ -1,4 +1,4 @@
PROG = mpurge
-NOMAN =
+NO_MAN =

.include <bsd.prog.mk>
--- mpurge.c.orig 2016-07-04 19:26:04.873833000 +0700
+++ mpurge.c 2016-07-04 19:28:24.975932000 +0700
@@ -34,6 +34,7 @@ static char rcsid[] = "$Id: mpurge.c,v 1
#include <sysexits.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <strings.h>
#include <sys/stat.h>
#include <errno.h>
@@ -88,9 +89,9 @@ char *mbox;

debug(func, "processing mbox \"%s\"\n", mbox);
if ((stat(mbox, &st) < 0) || !st.st_size) return 0;
- if (st.st_mode & S_IFMT != S_IFREG) {
+ if ((st.st_mode & S_IFMT) != S_IFREG) {
debug(func, "\"%s\" is not a regular file -- skipping\n", mbox);
- return;
+ return EINVAL;
}

fd = open(mbox, (d_flag ? O_RDONLY : O_RDWR)|O_EXLOCK|O_NONBLOCK, 0);


Golub Mikhail

unread,
Jul 4, 2016, 8:41:48 AM7/4/16
to Eugene Grosbein, Рассылка FreeBSD UA
Это (на данный момент для меня) лучший вариант.
Спасибо.

04.07.2016 15:30, Eugene Grosbein пишет:
--
Golub Mikhail

Alex Khrenov

unread,
Jul 4, 2016, 8:45:16 AM7/4/16
to fre...@uafug.org.ua
В Mon, 4 Jul 2016 15:18:38 +0300
Golub Mikhail <g...@gmn.org.ua> пишет:

> Доброго времени суток.
>
> Подскажите, плиз, как лучше реализовать следующее: удаление писем из
> ящика по расписанию.

Посмотрите в сторону mail/archivemail
archivemail -q -d30 --delete ...
Reply all
Reply to author
Forward
0 new messages