Проблема

Перед началом миграции почты возникла необходимость отсечь ящики, которыми уже давно никто не пользуется.

На данной рабочей станции используется Debian 8 Jessie.

Как вычислить "заброшенные" почтовые ящики без плагинов и создания таблиц в Dovecot ?

Для этого создаём скрипт last_login.sh

nano last_login.sh

Вставляем содержимое:

#!/bin/sh
DOMAIN=*
EMLUSER=*

LOGIN_CACHE=/tmp/last_login.cache
echo -n '' > $LOGIN_CACHE
chmod 600 $LOGIN_CACHE

for c in `ls /var/vmail/$DOMAIN/$EMLUSER/Maildir/dovecot.index.log`; do
{
LL=`stat $c | grep 'Change: ' | cut -d' ' -f2,3`
U=`echo $c | cut -d/ -f5`
D=`echo $c | cut -d/ -f4`
E=`echo $c | cut -d/ -f5`
echo "$LL=user=$U&domain=$D&email=$E" >> $LOGIN_CACHE
};
done;

cat $LOGIN_CACHE | sort -n
rm -f $LOGIN_CACHE

exit 0;

Если нужно вывести список ящиков по конкретному домену, в переменной DOMAIN=*, звездочку меняем на название домена, например DOMAIN=example.com

Далее меняем права на скрипт на 755:

chmod 755 last_login.sh

Пояснение: 7=rwx (владелец) 5=r-x (группа) 5=r-x (все)

И выполняем:

./last_login.sh

Для удобства, список можно вывести сразу в файл ./last_login.sh > mailreport.txt

В выводе будут такие строки:

2018-01-15 16:02:59.836780548=user=vasya&domain=domainname.ru&email=vasya, где:

  1. 2018-01-15 16:02:59 - время последнего онлайна/логина
  2. user=vasya,email=vasya - логин почтового аккаунта
  3. domain=domainname.ru - домен почтового аккаунта

Надеюсь, данный скрипт Вам помог 🙂

 

Поделиться