Часть 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