Simple Linux Panel
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mdserver-web/plugins/mail/versions/1.0/install.sh

149 lines
3.7 KiB

3 years ago
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
install_tmp=${rootPath}/tmp/mw_install.pl
VERSION=$2
cpu_arch=`arch`
if [[ $cpu_arch != "x86_64" ]];then
echo 'Does not support non-x86 system installation'
exit 0
fi
# if [ -f "/usr/bin/apt-get" ];then
# systemver='ubuntu'
# elif [ -f "/etc/redhat-release" ];then
# systemver=`cat /etc/redhat-release|sed -r 's/.* ([0-9]+)\..*/\1/'`
# postfixver=`postconf mail_version|sed -r 's/.* ([0-9\.]+)$/\1/'`
# else
# echo 'Unsupported system version'
# exit 0
# fi
## curl -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/dev/scripts/update_dev.sh | bash
## debug:
## cd /www/server/mdserver-web/plugins/mail && bash install.sh install 1.0
3 years ago
bash ${rootPath}/scripts/getos.sh
OSNAME=`cat ${rootPath}/data/osname.pl`
OSNAME_ID=`cat /etc/*-release | grep VERSION_ID | awk -F = '{print $2}' | awk -F "\"" '{print $2}'`
Install_debain(){
hostname=`hostname`
# 安装postfix和postfix-sqlite
debconf-set-selections <<< "postfix postfix/mailname string ${hostname}"
debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"
apt install postfix -y
apt install postfix-sqlite -y
apt install sqlite -y
# 安装dovecot和dovecot-sieve
apt install dovecot-core dovecot-pop3d dovecot-imapd dovecot-lmtpd dovecot-sqlite dovecot-sieve -y
apt install rspamd -y
apt install cyrus-sasl-plain -y
3 years ago
}
Uninstall_debain(){
apt remove postfix postfix-sqlite -y && rm -rf /etc/postfix
dpkg -P postfix postfix-sqlite
apt remove dovecot-core dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-sqlite dovecot-sieve -y
dpkg -P dovecot-core dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-sqlite dovecot-sieve
apt remove opendkim opendkim-tools -y
dpkg -P opendkim opendkim-tools
apt remove rspamd -y
dpkg -P rspamd
}
3 years ago
Install_ubuntu(){
Install_debain
}
3 years ago
Uninstall_ubuntu(){
Uninstall_debain
}
3 years ago
Install_App()
{
echo '正在安装脚本文件...' > $install_tmp
mkdir -p $serverPath/source
3 years ago
runScript=$curPath/install_$OSNAME.sh
3 years ago
3 years ago
if [[ -f $runScript ]]; then
sh -x $runScript install
3 years ago
elif [[ $OSNAME = "debian" ]]; then
Install_debain
else
Install_ubuntu
fi
if [ ! -f /etc/dovecot/conf.d/90-sieve.conf ];then
if [ -f "/usr/bin/apt-get" ];then
apt install dovecot-sieve -y
else
rm -rf /etc/dovecot_back
cp -a /etc/dovecot /etc/dovecot_back
yum remove dovecot -y
yum install dovecot-pigeonhole -y
if [ ! -f /usr/sbin/dovecot ]; then
yum install dovecot -y
fi
\cp -a /etc/dovecot_back/* /etc/dovecot
chown -R vmail:dovecot /etc/dovecot
chmod -R o-rwx /etc/dovecot
systemctl enable dovecot
systemctl restart dovecot
fi
fi
filesize=`ls -l /etc/dovecot/dh.pem | awk '{print $5}'`
echo $filesize
if [ ! -f "/etc/dovecot/dh.pem" ] || [ $filesize -lt 300 ]; then
openssl dhparam 2048 > /etc/dovecot/dh.pem
fi
3 years ago
mkdir -p $serverPath/mail
echo '1.0' > $serverPath/mail/version.pl
echo '安装完成' > $install_tmp
3 years ago
}
Uninstall_App()
{
3 years ago
runScript=$curPath/install_$OSNAME.sh
if [[ -f $runScript ]]; then
sh -x $runScript uninstall
elif [[ $OSNAME = "debian" ]]; then
Uninstall_debain
else
3 years ago
Uninstall_ubuntu
fi
3 years ago
if [ -f $serverPath/mail/initd/mail ];then
$serverPath/mail/initd/mail stop
fi
rm -rf /etc/postfix
rm -rf /etc/dovecot
rm -rf /etc/opendkim
rm -rf /usr/share/rspamd/www/rspamd
3 years ago
echo "Uninstall_Mail" > $install_tmp
}
action=$1
if [ "${1}" == 'install' ];then
Install_App
else
Uninstall_App
fi