vpasswd2postfixadmin/create_sql_file.sh

27 lines
1.1 KiB
Bash

#!/bin/bash
rm /root/users.sql
echo "DELETE FROM mailbox;" >> /root/users.sql
echo "DELETE FROM alias;" >> /root/users.sql
while IFS= read -r LINE
do
USER=$(echo $LINE | awk -F':' '{print $1}')
HASH=$(echo $LINE | awk -F':' '{print $2}')
NAME=$(echo $LINE | awk -F':' '{print $5}' | tr -cd '\11\12\15\40-\176' | sed "s/'/\\\'/g")
DOMAIN=$(echo $LINE | awk -F':' '{print $6}' | awk -F'/' '{print $6}')
MAILUSER="$USER@$DOMAIN"
echo "$MAILUSER;$NAME;$HASH"
QUERY_DOMAIN="INSERT IGNORE INTO domain (domain) VALUES ('$DOMAIN');"
echo $QUERY_DOMAIN >> /root/users.sql
QUERY_USER="INSERT INTO mailbox (username, password, name, domain, maildir, local_part) VALUES
('$MAILUSER','{MD5-CRYPT}$HASH','$N$
echo $QUERY_USER >> /root/users.sql
QUERY_ALIAS="INSERT INTO alias (address, goto, domain) VALUES ('$MAILUSER', '$MAILUSER', '$DOMAIN');"
echo $QUERY_ALIAS >> /root/users.sql
if [ "$USER" == "postmaster" ]; then
QUERY_ADMIN="INSERT INTO domain_admins (username, domain) VALUES ('$MAILUSER', '$DOMAIN');"
echo $QUERY_ADMIN >> /root/users.sql
fi
done < /root/collected_vpasswd