Почтовый сервер + Open-Xchange 6 на Ubuntu 12.04 Server: Часть 2

Часть 2

А вот и продолжение. Вот мой скрипт по добавлению пользователей одновременно и в почтарь и в OX6

Создайте файл в домашней директории, и дайте права на запуск, и внесите:

#!/bin/sh

DOMAIN=company.com

DBASE=vmail

DATE=$(date +%d.%m.%Y)

USROOT=root

USPASS=your_password_mysql_root

DIALOG=${DIALOG=dialog}

tempfile=`mktemp 2>/dev/null` || tempfile=/tmp/test$$

trap "rm -f $tempfile" 0 1 2 5 15

$DIALOG --clear --title "Выбор действия" \

--menu "Что вы хотите сделать:" 20 51 4 \

"ADD" "Добавить пользователя" \

"DEL" "Удалить пользователя" 2> $tempfile

retval=$?

choice=`cat $tempfile`

case $retval in

0)

if grep -w "ADD" $tempfile

then

$DIALOG --title "Ввод данных" --clear \

--inputbox "Введите имя пользователя:" 16 51 2> /tmp/username1

USERNAME="$(cat /tmp/username1)"

rm -f /tmp/username1

case $retval in

0);;

1)

echo "Отказ от ввода";;

255)

echo "Вы нажали ESC";;

esac

$DIALOG --title "Ввод данных" --clear \

--inputbox "Введите пароль пользователя:" 16 51 2> /tmp/password1

PASSWORD="$(cat /tmp/password1)"

rm -f /tmp/password1

$DIALOG --title "Ввод данных" --clear \

--inputbox "Введите отдел сотрудника:" 16 51 2> /tmp/department

DEPARTMENT="$(cat /tmp/department)"

rm -f /tmp/department

$DIALOG --title "Ввод данных" --clear \

--inputbox "Введите размер mail-ящика в Мб:" 16 51 2> /tmp/quota

QUOTA="$(cat /tmp/quota)"

rm -f /tmp/quota

$DIALOG --title "Ввод данных" --clear \

--inputbox "Введите комментарий к пользователю:" 16 51 2> /tmp/comment

COMMENT="$(cat /tmp/comment)"

rm -f /tmp/department

tempfile=`mktemp 2>/dev/null` || tempfile=/tmp/test$$

trap "rm -f $tempfile" 0 1 2 5 15

$DIALOG --backtitle "Не стесняйтесь, выберите опции" \

--title "Выбор опций" --clear \

--checklist " это... " 20 61 5 \

"ISGADM" "Глобальный админ" off \

"ADM" "Админ" off \

"SMTP" "Вкл. SMTP" ON \

"SMTPS" "Вкл. SMTP Secured" ON \

"POP3" "Вкл. POP3" ON \

"POP3S" "Вкл. POP3 Secured" ON \

"IMAP" "Вкл. IMAP" ON \

"IMAPS" "Вкл. IMAP Secured" ON 2> $tempfile

retval=$?

choice=`cat $tempfile`

case $retval in

0)

if grep -w "ISGADM" $tempfile

then ISGLOBALADMIN=1

else ISGLOBALADMIN=0

fi

if grep -w "ADM" $tempfile

then ISADMIN=1

else ISADMIN=0

fi

if grep -w "SMTP" $tempfile

then SMTP=1

else SMTP=0

fi

if grep -w "SMTPS" $tempfile

then SMTPS=1

else SMTPS=0

fi

if grep -w "POP3" $tempfile

then POP3=1

else POP3=0

fi

if grep -w "POP3S" $tempfile

then POP3S=1

else POP3S=0

fi

if grep -w "IMAP" $tempfile

then IMAP=1

else IMAP=0

fi

if grep -w "IMAPS" $tempfile

then IMAPS=1

else IMAPS=0

fi

;;

1)

echo "Отказ от ввода.";;

255)

echo "Нажата клавиша ESC.";;

esac

COUNT=20

(

while test $COUNT != 120

do

echo $COUNT

echo "XXX"

echo "Вносим пользователя в базу данных $DBASE - $COUNT% -"

echo "Великолепно"

echo "XXX"

COUNT=`expr $COUNT + 20`

sleep 1

done

) |

$DIALOG --title "Выполнение операции" --gauge 10 30 50

echo "USE $DBASE;" > /tmp/sql_tmp.sql

echo "INSERT INTO mailbox (username, password, name, language, storagebasedirectory, storagenode, maildir, quota, domain, department, rank, isadmin, isglobaladmin, enablesmtp, enablesmtpsecured, enablepop3, enablepop3secured, enableimap, enableimapsecured, enabledeliver, enablelda, enablemanagesieve, enablemanagesievesecured, enablesieve, enablesievesecured, enableinternal, enabledoveadm, disclaimer) VALUES ('$USERNAME@$DOMAIN', ENCRYPT('$PASSWORD'), '$USERNAME', 'ru_RU', '/home/vmail', 'vmail1', '$DOMAIN/$USERNAME-$DATE', '$QUOTA', '$DOMAIN', '$DEPARTMENT', 'normal', '$ISADMIN', '$ISGLOBALADMIN', '$SMTP', '$SMTPS', '$POP3', '$POP3S', '$IMAP', '$IMAPS', '1', '1', '1', '1', '1', '1', '1', '1', '$COMMENT');" >> /tmp/sql_tmp.sql

mysql --user=$USROOT < /tmp/sql_tmp.sql --password=$USPASS

rm -f /tmp/sql_tmp.sql

/opt/open-xchange/sbin/createuser -c 1 -A oxadmin -P admin_password -u $USERNAME \

-d "$USERNAME User" -g $USERNAME -s User -p $PASSWORD -e $USERNAME@$DOMAIN \

--imaplogin $USERNAME@$DOMAIN --imapserver 127.0.0.1 --smtpserver 127.0.0.1

exit

else

;;

1)

echo "Отказ от действия";;

255)

echo "Нажата кнопка ESC";;

esac