Архив

Архив Май 2009

Архивирование и удаление mailbox от удаленных почтовых e-mail

Посмотрев на занятое пространство на почтовом сервере под mailbox для почтовых ящиков нескольких доменов. Я понял, что пора наконец сделать инструмент для удаления не используемых mailbox после удаления пользователей из базы e-mail. Раньше, не было в этом необходимости, но место стало поджимать и настало время разобраться. На помощь пришел bash. На нем я написал вот такой маленький скрипт.

#!/bin/sh

#########################################################################################
#   Created:      Zakharchenko Andrey Ruslanovich
#   Date:         2009.05.20
#   Description:  Поиск mailbox для удаленных почтовых ящиков из базы mysql.
#                      Производится поиск, архивирование в папку хранения и удаление.
#                      исходного mailbox
#########################################################################################

#--- объявляем переменные
i=0
domaindir="/var/files/mail"
mailolddir="/var/files/mailold"

#--- проверяем существование архивной папки
if ! test -d ${mailolddir}.
then
    mkdir ${mailolddir}
fi

#--- составляем листинг доменов
for domain in $( ls ${domaindir} ).
do
#--- создаем в архивной папке доменные папки
    if ! test -d ${mailolddir}/${domain}
    then
             mkdir ${mailolddir}/${domain}
    fi

#--- просматриваем содержимое доменных папок и ищем соответствие mailbox в mysql базе
    for email in $( ls ${domaindir}/${domain} )
    do
tmp=`mysql --user=root -p --database=mail-server --execute="select username.
                                                    from users where username='${email}' "
| awk '$1!="username"'`
#--- если пользователя нету в базе, то архивируем mailbox и удаляем исходную папку
             if test -z ${tmp}
             then
                 TMP=`let "i+=1"`
                 echo -e "Archiving item....  \t  domain: $domain mailbox: ${email}"
                 tar -jcf ${mailolddir}/${domain}/${email}.tar.bz2 ${domaindir}/${domain}/${email}
                 echo -e "Remove item.... \t domain: ${domain}, mailmox: ${email}"
                 rm -rdf ${domaindir}/${domain}/${email}
             fi
    done
done

echo -e "It is processed mail boxes \t $i"

#--- ищем архивные ящики которые хранятся больше полугода и удаляем их
find ${mailolddir} -not -newerct '11 week ago' -and -type f  -delete

От решил все необходимы мне задачи :) Так как порой какой-то невменяемы преподаватель появляется через пол года и просит ему по новой создать почтовый ящик и вернуть ему письма. Из-за этого я сначала архивирую mailbox, а только потом удаляю старый mailbox.

µTorrent и уравление через web

Сегодня запускал в организации в эксплуатацию новый безлимитный интернет канал. Так как в будни у нас практически нельзя ни чего делать важного, пришлось приехать в субботу. В итоге решил раз так пошло, сменить для всего вуза шлюз на новый. Он уже два месяца находится в тестовой эксплуатации. Его работа показала, что все отлично, и я принял решение, что сегодня заменю старый шлюз на новый находящийся в тестовой эксплуатации. В итоге, после всего сделанного, появился 8 Mbit безлимитный интернет канал. Читать далее…

Author: Categories: Заметки Tags:

Парашют APC UPS для FreeBSD

Дошли таки у меня руки настроить парашют для своего шлюза настроенного на FreeBSD 7.1-RELEASE-p5. Мы в организации для серверов закупаем источники бесперебойного питания компании American Power Conversion. В основном у нас используются APC Smart-UPS 2200VA Rack Mount 2U USB. Так как у меня ядро уже было собрано с поддержкой USB, то просто проверим, что система увидела UPS подключенную через USB кабель. Читать далее…

Author: Categories: Работа Tags:

Импорт DHCP списка.

Вот таким коротким кодом в одну строку сделал импорт всей резервации.

ForEach ($address in Get-Content dhcp-export.txt) { $tmp = $address.split("`t"); if ($tmp[0] -notmatch "^10\.1\.2\.") {`
netsh dhcp server \\10.1.1.39 scope 10.1.0.0 add reservedip $tmp[0] $tmp[4] $tmp[1]| Out-Null }}

Тут конечно нету ни чего героического. Разместил так, для себя чтоб не забыть.