Backup database if exists.
This commit is contained in:
parent
97939dae24
commit
a5aa813af9
@ -26,6 +26,7 @@ conf_file="${_src_base_dir}/conf/install_postfixadmin.conf"
|
||||
curdir=`pwd`
|
||||
|
||||
log_file="$(mktemp)"
|
||||
backup_date="$(date +%Y-%m-%d-%H%M)"
|
||||
|
||||
declare -A check_entry_main_cf_arr
|
||||
|
||||
@ -424,12 +425,30 @@ echo -e "\n\n\t\033[37m\033[1mPre-installion tasks ..\033[m\n"
|
||||
# -
|
||||
_failed=false
|
||||
> $log_file
|
||||
echononl "\tCreate Postfix Database '$POSTFIX_DB_NAME'"
|
||||
if [ "$POSTFIX_DB_TYPE" = "mysql" ]; then
|
||||
echo -n " (MySQL).."
|
||||
|
||||
if [[ "$POSTFIX_DB_TYPE" = "mysql" ]] ; then
|
||||
if ! mysql $mysql_credential_args -N -s -e \
|
||||
"SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '$POSTFIX_DB_NAME'" 2>> $log_file \
|
||||
| grep $POSTFIX_DB_NAME >> $log_file 2>&1 ; then
|
||||
database_exists=false
|
||||
else
|
||||
database_exists=true
|
||||
fi
|
||||
elif [[ "$POSTFIX_DB_TYPE" = "pgsql" ]]; then
|
||||
count=$(su - postgres -c "psql -q -A -t -l" | grep -c -e "^$POSTFIX_DB_NAME")
|
||||
if [[ $count -eq 0 ]];then
|
||||
database_exists=false
|
||||
else
|
||||
database_exists=true
|
||||
fi
|
||||
else
|
||||
fatal "Cannot detect database type (value of POSTFIX_DB_TYPE is neither 'mysql' nor 'pgsql')"
|
||||
fi
|
||||
|
||||
if ! $database_exists ; then
|
||||
echononl "\tCreate Postfix Database '$POSTFIX_DB_NAME'"
|
||||
if [ "$POSTFIX_DB_TYPE" = "mysql" ]; then
|
||||
echo -n " (MySQL).."
|
||||
mysql $mysql_credential_args -N -s -e \
|
||||
"CREATE DATABASE IF NOT EXISTS $POSTFIX_DB_NAME CHARACTER SET utf8 COLLATE utf8_general_ci" >> $log_file 2>&1
|
||||
if [[ $? -ne 0 ]] ; then
|
||||
@ -450,13 +469,8 @@ if [ "$POSTFIX_DB_TYPE" = "mysql" ]; then
|
||||
else
|
||||
echo_ok
|
||||
fi
|
||||
else
|
||||
echo_skipped
|
||||
fi
|
||||
elif [ "$POSTFIX_DB_TYPE" = "pgsql" ]; then
|
||||
echo -n " (PostgreSQL).."
|
||||
count=`su - postgres -c "psql -q -A -t -l" | grep -c -e "^$POSTFIX_DB_NAME"`
|
||||
if [ $count -eq 0 ];then
|
||||
elif [ "$POSTFIX_DB_TYPE" = "pgsql" ]; then
|
||||
echo -n " (PostgreSQL).."
|
||||
echo "CREATE ROLE $POSTFIX_DB_USER WITH LOGIN NOCREATEDB NOCREATEROLE NOSUPERUSER ENCRYPTED PASSWORD '$POSTFIX_DB_PASS'" \
|
||||
| su - postgres -c "psql" >> $log_file 2>&1
|
||||
if [[ $? -ne 0 ]] ; then
|
||||
@ -472,8 +486,27 @@ elif [ "$POSTFIX_DB_TYPE" = "pgsql" ]; then
|
||||
else
|
||||
echo_ok
|
||||
fi
|
||||
else
|
||||
echo_skipped
|
||||
fi
|
||||
else
|
||||
echononl "\tBackup Postfix Database '$POSTFIX_DB_NAME'"
|
||||
if [[ "$POSTFIX_DB_TYPE" = "mysql" ]]; then
|
||||
echo -n " (MySQL).."
|
||||
mysqldump $mysql_credential_args --opt $POSTFIX_DB_NAME >> ${WEBSITE_BASEDIR}/${POSTFIX_DB_NAME}.${backup_date}.sql 2> $log_file
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failed
|
||||
error "$(cat $log_file)"
|
||||
fi
|
||||
elif [[ "$POSTFIX_DB_TYPE" = "pgsql" ]]; then
|
||||
echo -n " (PostgreSQL).."
|
||||
su - postgres -c "pg_dump $POSTFIX_DB_NAME" >> ${WEBSITE_BASEDIR}/${POSTFIX_DB_NAME}.${backup_date}.sql 2> $log_file
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo_ok
|
||||
else
|
||||
echo_failed
|
||||
error "$(cat $log_file)"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@ -571,7 +604,7 @@ fi
|
||||
echononl "\tBackup existing source directory 'postfixadmin-${PF_ADMIN_VERSION}'.."
|
||||
if [[ -d "${_src_base_dir}/postfixadmin-${PF_ADMIN_VERSION}" ]]; then
|
||||
mv ${_src_base_dir}/postfixadmin-${PF_ADMIN_VERSION} \
|
||||
${_src_base_dir}/postfixadmin-${PF_ADMIN_VERSION}.$(date +%Y%m%d-%H%M)
|
||||
${_src_base_dir}/postfixadmin-${PF_ADMIN_VERSION}.${backup_date}
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo_ok
|
||||
else
|
||||
@ -607,7 +640,7 @@ fi
|
||||
echononl "\tBackup existing web-directory 'postfixadmin-${PF_ADMIN_VERSION}'.."
|
||||
if [[ -d "${WEBSITE_BASEDIR}/postfixadmin-${PF_ADMIN_VERSION}" ]]; then
|
||||
mv ${WEBSITE_BASEDIR}/postfixadmin-${PF_ADMIN_VERSION} \
|
||||
${WEBSITE_BASEDIR}/postfixadmin-${PF_ADMIN_VERSION}.`date +%Y%m%d-%H%M` > $log_file 2>&1
|
||||
${WEBSITE_BASEDIR}/postfixadmin-${PF_ADMIN_VERSION}.${backup_date} > $log_file 2>&1
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo_ok
|
||||
else
|
||||
@ -1349,7 +1382,7 @@ fi
|
||||
|
||||
echononl "\tBackup existing script 'vacation.pl'"
|
||||
if [[ -f "/var/spool/vacation/vacation.pl" ]] ; then
|
||||
mv /var/spool/vacation/vacation.pl /var/spool/vacation/vacation.pl.$(date +%Y%m%d-%H%M) > "$log_file" 2>&1
|
||||
mv /var/spool/vacation/vacation.pl /var/spool/vacation/vacation.pl.${backup_date} > "$log_file" 2>&1
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo_failed
|
||||
error "$(cat $log_file)"
|
||||
@ -1432,7 +1465,7 @@ fi
|
||||
|
||||
echononl "\tBackup existing file '/etc/postfixadmin/vacation.conf'"
|
||||
if [[ -f "/etc/postfixadmin/vacation.conf" ]]; then
|
||||
mv /etc/postfixadmin/vacation.conf /etc/postfixadmin/vacation.conf.$(date +%Y%m%d-%H%M) > "$log_file" 2>&1
|
||||
mv /etc/postfixadmin/vacation.conf /etc/postfixadmin/vacation.conf.${backup_date} > "$log_file" 2>&1
|
||||
if [[ $? -eq 0 ]];then
|
||||
echo_ok
|
||||
else
|
||||
@ -1985,7 +2018,7 @@ fi
|
||||
echononl "\tBackup existing post-deletion script"
|
||||
if [[ -f "/usr/local/bin/postfixadmin-mailbox-postdeletion.sh" ]]; then
|
||||
mv /usr/local/bin/postfixadmin-mailbox-postdeletion.sh \
|
||||
/usr/local/bin/postfixadmin-mailbox-postdeletion.sh.$(date +%Y%m%d-%H%M) > $log_file 2>&1
|
||||
/usr/local/bin/postfixadmin-mailbox-postdeletion.sh.${backup_date} > $log_file 2>&1
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo_ok
|
||||
else
|
||||
@ -2139,7 +2172,7 @@ fi
|
||||
echononl "\tBackup existing post-deletion script"
|
||||
if [[ -f "/usr/local/bin/postfixadmin-domain-postdeletion.sh" ]]; then
|
||||
mv /usr/local/bin/postfixadmin-domain-postdeletion.sh \
|
||||
/usr/local/bin/postfixadmin-domain-postdeletion.sh.$(date +%Y%m%d-%H%M) > $log_file 2>&1
|
||||
/usr/local/bin/postfixadmin-domain-postdeletion.sh.${backup_date} > $log_file 2>&1
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo_ok
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user