mirror of
https://github.com/myvesta/vesta
synced 2025-08-14 02:28:05 -07:00
improved rebuilds
This commit is contained in:
parent
b825490946
commit
4b44937540
9 changed files with 370 additions and 27 deletions
|
@ -54,12 +54,7 @@ package_data=$(cat $VESTA/data/packages/$package.pkg)
|
|||
|
||||
# Checking shell
|
||||
shell_conf=$(echo "$package_data" | grep 'SHELL' | cut -f 2 -d \')
|
||||
case $shell_conf in
|
||||
nologin) shell='/sbin/nologin' ;;
|
||||
bash) shell='/bin/bash' ;;
|
||||
sh) shell='/bin/bash' ;;
|
||||
*) shell='/sbin/nologin' ;;
|
||||
esac
|
||||
shell=$(/usr/bin/chsh --list-shells | grep -w "$shell_conf" |head -n1)
|
||||
|
||||
# Adding user
|
||||
/usr/sbin/adduser "$user" -s "$shell" -c "$email" -m -d "$HOMEDIR/$user"
|
||||
|
@ -143,13 +138,13 @@ if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
|
|||
chmod 770 $USER_DATA/mail
|
||||
touch $USER_DATA/mail.conf
|
||||
chmod 660 $USER_DATA/mail.conf
|
||||
echo "v_upd_mail_domains_disk $user" >> $VESTA/data/queue/disk.pipe
|
||||
echo "v_update_mail_domains_disk $user" >> $VESTA/data/queue/disk.pipe
|
||||
fi
|
||||
|
||||
if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
|
||||
touch $USER_DATA/db.conf
|
||||
chmod 660 $USER_DATA/db.conf
|
||||
echo "v_update_db_bases_disk $user" >> $VESTA/data/queue/disk.pipe
|
||||
echo "v_update_databases_disk $user" >> $VESTA/data/queue/disk.pipe
|
||||
fi
|
||||
|
||||
if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ]; then
|
||||
|
|
|
@ -43,7 +43,6 @@ is_object_value_exist 'web' 'DOMAIN' "$domain" '$STATS'
|
|||
stats_dir="$HOMEDIR/$user/web/$domain/stats"
|
||||
|
||||
# Adding htaccess file
|
||||
rm -f $stats_dir/.htaccess
|
||||
echo "AuthUserFile $stats_dir/.htpasswd
|
||||
AuthName \"Web Statistics\"
|
||||
AuthType Basic
|
||||
|
|
|
@ -77,7 +77,7 @@ conf=$VESTA/data/ips/*
|
|||
fields="\$IP \$OWNER \$STATUS \$NAME \$U_SYS_USERS \$U_WEB_DOMAINS"
|
||||
fields="$fields \$INTERFACE \$NETMASK \$DATE"
|
||||
|
||||
# Listing domains
|
||||
# Listing ip addresses
|
||||
case $format in
|
||||
json) json_list_ips ;;
|
||||
plain) nohead=1; shell_list_ips ;;
|
||||
|
|
53
bin/v_rebuild_databases
Executable file
53
bin/v_rebuild_databases
Executable file
|
@ -0,0 +1,53 @@
|
|||
#!/bin/bash
|
||||
# info: rebuild databases
|
||||
# options: user
|
||||
#
|
||||
# The function for rebuilding of all databases of a single user.
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Variable&Function #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Argument defenition
|
||||
user=$1
|
||||
|
||||
# Includes
|
||||
source $VESTA/conf/vesta.conf
|
||||
source $VESTA/func/shared.sh
|
||||
source $VESTA/func/db.sh
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
check_args '1' "$#" 'user'
|
||||
validate_format 'user'
|
||||
is_system_enabled "$DB_SYSTEM"
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Starting rebuild loop
|
||||
for database in $(search_objects 'db' 'SUSPENDED' "no" 'DB'); do
|
||||
get_database_values
|
||||
# Switching on db type
|
||||
case $TYPE in
|
||||
mysql) rebuild_mysql_database ;;
|
||||
pgsql) rebuild_pgsql_database ;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Vesta #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Logging
|
||||
log_event "$OK" "$EVENT"
|
||||
|
||||
exit
|
169
bin/v_rebuild_user
Executable file
169
bin/v_rebuild_user
Executable file
|
@ -0,0 +1,169 @@
|
|||
#!/bin/bash
|
||||
# info: rebuild system user
|
||||
# options: user [full]
|
||||
#
|
||||
# The function rebuilds system user account.
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Variable&Function #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Argument defenition
|
||||
user=$1
|
||||
full=${2-no}
|
||||
|
||||
# Includes
|
||||
source $VESTA/conf/vesta.conf
|
||||
source $VESTA/func/shared.sh
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
check_args '1' "$#" 'user [full]'
|
||||
validate_format 'user' 'full'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
is_object_unsuspended 'user' 'USER' "$user"
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Get user variables
|
||||
source $USER_DATA/user.conf
|
||||
|
||||
# Rebuild user
|
||||
shell=$(/usr/bin/chsh --list-shells | grep -w "$SHELL" |head -n1)
|
||||
/usr/sbin/adduser "$user" -s "$shell" -c "$CONTACT" -m -d "$HOMEDIR/$user" \
|
||||
&>/dev/null
|
||||
|
||||
# Change password
|
||||
#/usr/sbin/usermod -p $MD5 $user
|
||||
shadow=/tmp/shadow
|
||||
shdw=$(grep ^$user: $shadow)
|
||||
shdw3=$(echo "$shdw" | cut -f3 -d :)
|
||||
shdw4=$(echo "$shdw" | cut -f4 -d :)
|
||||
shdw5=$(echo "$shdw" | cut -f5 -d :)
|
||||
shdw6=$(echo "$shdw" | cut -f6 -d :)
|
||||
shdw7=$(echo "$shdw" | cut -f7 -d :)
|
||||
shdw8=$(echo "$shdw" | cut -f8 -d :)
|
||||
shdw9=$(echo "$shdw" | cut -f9 -d :)
|
||||
chmod u+w $shadow
|
||||
sed -i "/^$user:*/d" $shadow
|
||||
echo "$user:$MD5:$shdw3:$shdw4:$shdw5:$shdw6:$shdw7:$shdw8:$shdw9" >> $shadow
|
||||
chmod u-w $shadow
|
||||
|
||||
# Change shell
|
||||
/usr/bin/chsh -s "$shell" "$user" &>/dev/null
|
||||
|
||||
# Building directory tree
|
||||
mkdir -p $HOMEDIR/$user
|
||||
chmod -R a+x $HOMEDIR/$user
|
||||
mkdir -p $HOMEDIR/$user/conf
|
||||
chown $user:$user $HOMEDIR/$user/conf
|
||||
|
||||
if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
|
||||
mkdir -p $HOMEDIR/$user/conf/web
|
||||
mkdir -p $HOMEDIR/$user/web
|
||||
mkdir -p $HOMEDIR/$user/tmp
|
||||
chmod 751 $HOMEDIR/$user/conf/web
|
||||
chmod 751 $HOMEDIR/$user/web
|
||||
chmod 777 $HOMEDIR/$user/tmp
|
||||
chown $user:$user $HOMEDIR/$user/web
|
||||
if [ "$full" = 'yes' ]; then
|
||||
$BIN/v_rebuild_web_domains $user
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
|
||||
mkdir -p $HOMEDIR/$user/conf/mail
|
||||
mkdir -p $HOMEDIR/$user/mail
|
||||
chmod 751 $HOMEDIR/$user/mail
|
||||
chmod 751 $HOMEDIR/$user/conf/mail
|
||||
if [ "$full" = 'yes' ]; then
|
||||
$BIN/v_rebuild_mail_domains $user
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then
|
||||
mkdir -p $HOMEDIR/$user/conf/dns
|
||||
chmod 751 $HOMEDIR/$user/conf/dns
|
||||
if [ "$full" = 'yes' ]; then
|
||||
$BIN/v_rebuild_dns_domains $user
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
|
||||
if [ "$full" = 'yes' ]; then
|
||||
$BIN/v_rebuild_databases $user
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ]; then
|
||||
if [ "$full" = 'yes' ]; then
|
||||
$BIN/v_rebuild_cron_jobs $user
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Vesta #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Creating configuration files and pipes
|
||||
chmod 770 $USER_DATA
|
||||
touch $USER_DATA/backup.conf
|
||||
chmod 660 $USER_DATA/backup.conf
|
||||
touch $USER_DATA/history.log
|
||||
chmod 660 $USER_DATA/history.log
|
||||
touch $USER_DATA/stats.log
|
||||
chmod 660 $USER_DATA/stats.log
|
||||
|
||||
sed -i "/ $user$/d" $VESTA/data/queue/disk.pipe
|
||||
echo "v_update_user_disk $user" >> $VESTA/data/queue/disk.pipe
|
||||
|
||||
if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
|
||||
mkdir -p $USER_DATA/ssl
|
||||
chmod 770 $USER_DATA/ssl
|
||||
touch $USER_DATA/web.conf
|
||||
chmod 660 $USER_DATA/web.conf
|
||||
if [ "$(grep -w $user $VESTA/data/queue/traffic.pipe)" ]; then
|
||||
echo "$BIN/v_update_web_domains_traff $user" \
|
||||
>> $VESTA/data/queue/traffic.pipe
|
||||
fi
|
||||
echo "v_update_web_domains_disk $user" >> $VESTA/data/queue/disk.pipe
|
||||
fi
|
||||
|
||||
if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then
|
||||
mkdir -p $USER_DATA/dns
|
||||
chmod 770 $USER_DATA/dns
|
||||
touch $USER_DATA/dns.conf
|
||||
chmod 660 $USER_DATA/dns.conf
|
||||
fi
|
||||
|
||||
if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
|
||||
mkdir -p $USER_DATA/mail
|
||||
chmod 770 $USER_DATA/mail
|
||||
touch $USER_DATA/mail.conf
|
||||
chmod 660 $USER_DATA/mail.conf
|
||||
echo "v_update_mail_domains_disk $user" >> $VESTA/data/queue/disk.pipe
|
||||
fi
|
||||
|
||||
if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
|
||||
touch $USER_DATA/db.conf
|
||||
chmod 660 $USER_DATA/db.conf
|
||||
echo "v_update_datbases_disk $user" >> $VESTA/data/queue/disk.pipe
|
||||
fi
|
||||
|
||||
if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ]; then
|
||||
touch $USER_DATA/cron.conf
|
||||
chmod 660 $USER_DATA/cron.conf
|
||||
fi
|
||||
|
||||
# Logging
|
||||
log_event "$OK" "$EVENT"
|
||||
|
||||
exit
|
|
@ -50,9 +50,49 @@ nohead=1
|
|||
|
||||
# Starting loop
|
||||
for domain in $(shell_list) ; do
|
||||
domain_idn=$(idn -t --quiet -a "$domain")
|
||||
|
||||
# Rebuilding directories
|
||||
mkdir -p $HOMEDIR/$user/web/$domain \
|
||||
$HOMEDIR/$user/web/$domain/public_html \
|
||||
$HOMEDIR/$user/web/$domain/public_shtml \
|
||||
$HOMEDIR/$user/web/$domain/document_errors \
|
||||
$HOMEDIR/$user/web/$domain/cgi-bin \
|
||||
$HOMEDIR/$user/web/$domain/private \
|
||||
$HOMEDIR/$user/web/$domain/stats \
|
||||
$HOMEDIR/$user/web/$domain/logs
|
||||
if [ ! -e "$HOMEDIR/$user/web/$domain/logs/$domain.log" ]; then
|
||||
ln -s /var/log/httpd/domains/$domain.error.log \
|
||||
$HOMEDIR/$user/web/$domain/logs/$domain.log
|
||||
fi
|
||||
if [ ! -e "$HOMEDIR/$user/web/$domain/logs/$domain.error.log" ]; then
|
||||
ln -s /var/log/httpd/domains/$domain.error.log \
|
||||
$HOMEDIR/$user/web/$domain/logs/$domain.error.log
|
||||
fi
|
||||
if [ -e "$WEBTPL/skel/document_errors/" ]; then
|
||||
cp -r $WEBTPL/skel/document_errors/ $HOMEDIR/$user/web/$domain/
|
||||
fi
|
||||
chmod 551 $HOMEDIR/$user/web/$domain
|
||||
chmod 751 $HOMEDIR/$user/web/$domain/private
|
||||
chmod 751 $HOMEDIR/$user/web/$domain/cgi-bin
|
||||
chmod 751 $HOMEDIR/$user/web/$domain/public_html
|
||||
chmod 751 $HOMEDIR/$user/web/$domain/public_shtml
|
||||
chmod 751 $HOMEDIR/$user/web/$domain/document_errors
|
||||
chmod -f -R 775 $HOMEDIR/$user/web/$domain/document_errors/*
|
||||
chmod 551 $HOMEDIR/$user/web/$domain/stats
|
||||
chmod 551 $HOMEDIR/$user/web/$domain/logs
|
||||
chmod 640 /var/log/httpd/domains/$domain.*
|
||||
|
||||
chown $user:$user $HOMEDIR/$user/web/$domain
|
||||
chown $user:$user $HOMEDIR/$user/web/$domain/private
|
||||
chown $user:$user $HOMEDIR/$user/web/$domain/cgi-bin
|
||||
chown $user:$user $HOMEDIR/$user/web/$domain/public_html
|
||||
chown $user:$user $HOMEDIR/$user/web/$domain/public_shtml
|
||||
chown -R $user:$user $HOMEDIR/$user/web/$domain/document_errors
|
||||
chown root:$user /var/log/httpd/domains/$domain.*
|
||||
chown root:apache $conf
|
||||
|
||||
# Parsing domain values
|
||||
domain_idn=$(idn -t --quiet -a "$domain")
|
||||
get_domain_values 'web'
|
||||
|
||||
# Preparing domain values for the template substitution
|
||||
|
@ -78,25 +118,41 @@ for domain in $(shell_list) ; do
|
|||
|
||||
# Checking stats
|
||||
if [ ! -z "$STATS" ]; then
|
||||
cat $WEBTPL/$STATS.tpl |\
|
||||
sed -e "s/%ip%/$ip/g" \
|
||||
-e "s/%web_port%/$WEB_PORT/g" \
|
||||
-e "s/%web_ssl_port%/$WEB_SSL_PORT/g" \
|
||||
-e "s/%proxy_port%/$PROXY_PORT/g" \
|
||||
-e "s/%proxy_ssl_port%/$PROXY_SSL_PORT/g" \
|
||||
-e "s/%domain_idn%/$domain_idn/g" \
|
||||
-e "s/%domain%/$domain/g" \
|
||||
-e "s/%user%/$user/g" \
|
||||
-e "s/%home%/${HOMEDIR////\/}/g" \
|
||||
-e "s/%alias%/${aliases//,/ }/g" \
|
||||
-e "s/%alias_idn%/${aliases_idn//,/ }/g" \
|
||||
> $HOMEDIR/$user/conf/web/$STATS.$domain.conf
|
||||
cat $WEBTPL/$STATS.tpl |\
|
||||
sed -e "s/%ip%/$ip/g" \
|
||||
-e "s/%web_port%/$WEB_PORT/g" \
|
||||
-e "s/%web_ssl_port%/$WEB_SSL_PORT/g" \
|
||||
-e "s/%proxy_port%/$PROXY_PORT/g" \
|
||||
-e "s/%proxy_ssl_port%/$PROXY_SSL_PORT/g" \
|
||||
-e "s/%domain_idn%/$domain_idn/g" \
|
||||
-e "s/%domain%/$domain/g" \
|
||||
-e "s/%user%/$user/g" \
|
||||
-e "s/%home%/${HOMEDIR////\/}/g" \
|
||||
-e "s/%alias%/${aliases//,/ }/g" \
|
||||
-e "s/%alias_idn%/${aliases_idn//,/ }/g" \
|
||||
> $HOMEDIR/$user/conf/web/$STATS.$domain.conf
|
||||
|
||||
stats_string="$BIN/v_update_web_domain_stat $user $domain"
|
||||
check_stats_pipe=$(grep "$stats_string" $V_QUEUE/stats.pipe)
|
||||
if [ -z "$check_stats_pipe" ]; then
|
||||
echo "$stats_string" >> $V_QUEUE/stats.pipe
|
||||
fi
|
||||
|
||||
if [ ! -z "$STATS_USER" ]; then
|
||||
# Definining statistic dir
|
||||
stats_dir="$HOMEDIR/$user/web/$domain/stats"
|
||||
|
||||
# Adding htaccess file
|
||||
echo "AuthUserFile $stats_dir/.htpasswd" > $stats_dir/.htaccess
|
||||
echo "AuthName \"Web Statistics\"" >> $stats_dir/.htaccess
|
||||
echo "AuthType Basic" >> $stats_dir/.htaccess
|
||||
echo "Require valid-user" >> $stats_dir/.htaccess
|
||||
|
||||
# Generating htaccess user and password
|
||||
rm -f $stats_dir/.htpasswd
|
||||
htpasswd -bc $stats_dir/.htpasswd "$STATS_USER" "$STATS_CRYPT" \
|
||||
&>/dev/null
|
||||
fi
|
||||
fi
|
||||
|
||||
# Checking ssl
|
||||
|
|
|
@ -40,7 +40,7 @@ is_object_unsuspended 'db' 'DB' "$database"
|
|||
get_database_values
|
||||
|
||||
# Switching on db type
|
||||
case $type in
|
||||
case $TYPE in
|
||||
mysql) suspend_mysql_database ;;
|
||||
pgsql) suspend_pgsql_database ;;
|
||||
esac
|
||||
|
|
|
@ -39,7 +39,7 @@ is_object_suspended 'db' 'DB' "$database"
|
|||
get_database_values
|
||||
|
||||
# Switching on db type
|
||||
case $type in
|
||||
case $TYPE in
|
||||
mysql) unsuspend_mysql_database ;;
|
||||
pgsql) unsuspend_pgsql_database ;;
|
||||
esac
|
||||
|
|
73
func/db.sh
73
func/db.sh
|
@ -515,7 +515,7 @@ get_mysql_disk_usage() {
|
|||
usage=$(printf "%0.f\n" $usage)
|
||||
}
|
||||
|
||||
# Get MySQL disk usage
|
||||
# Get PostgreSQL disk usage
|
||||
get_pgsql_disk_usage() {
|
||||
host_str=$(grep "HOST='$HOST'" $VESTA/conf/pgsql.conf)
|
||||
eval $host_str
|
||||
|
@ -546,3 +546,74 @@ get_pgsql_disk_usage() {
|
|||
usage=1
|
||||
fi
|
||||
}
|
||||
|
||||
# Rebuild MySQL database
|
||||
rebuild_mysql_database() {
|
||||
host_str=$(grep "HOST='$HOST'" $VESTA/conf/mysql.conf)
|
||||
eval $host_str
|
||||
if [ -z $HOST ] || [ -z $USER ] || [ -z $PASSWORD ] || [ -z $PORT ]; then
|
||||
echo "Error: mysql config parsing failed"
|
||||
log_event "$E_PARSING" "$EVENT"
|
||||
exit $E_PARSING
|
||||
fi
|
||||
|
||||
query='SELECT VERSION()'
|
||||
mysql -h $HOST -u $USER -p$PASSWORD -P $PORT -e "$query" &> /dev/null
|
||||
if [ '0' -ne "$?" ]; then
|
||||
echo "Error: Connection failed"
|
||||
log_event "$E_DB $EVENT"
|
||||
exit $E_DB
|
||||
fi
|
||||
|
||||
query="CREATE DATABASE $database CHARACTER SET $CHARSET"
|
||||
mysql -h $HOST -u $USER -p$PASSWORD -P $PORT -e "$query" &> /dev/null
|
||||
|
||||
query="GRANT ALL ON $database.* TO '$DBUSER'@'*'"
|
||||
mysql -h $HOST -u $USER -p$PASSWORD -P $PORT -e "$query" &> /dev/null
|
||||
|
||||
query="GRANT ALL ON $database.* TO '$DBUSER'@'localhost'"
|
||||
mysql -h $HOST -u $USER -p$PASSWORD -P $PORT -e "$query" &> /dev/null
|
||||
|
||||
query="UPDATE mysql.user SET Password='$MD5' WHERE User='$DBUSER';"
|
||||
mysql -h $HOST -u $USER -p$PASSWORD -P $PORT -e "$query" &> /dev/null
|
||||
}
|
||||
|
||||
# Rebuild PostgreSQL database
|
||||
rebuild_pgsql_database() {
|
||||
host_str=$(grep "HOST='$HOST'" $VESTA/conf/pgsql.conf)
|
||||
eval $host_str
|
||||
export PGPASSWORD="$PASSWORD"
|
||||
if [ -z $HOST ] || [ -z $USER ] || [ -z $PASSWORD ] || [ -z $TPL ]; then
|
||||
echo "Error: postgresql config parsing failed"
|
||||
log_event "$E_PARSING" "$EVENT"
|
||||
exit $E_PARSING
|
||||
fi
|
||||
|
||||
query='SELECT VERSION()'
|
||||
psql -h $HOST -U $USER -p $PORT -c "$query" &> /dev/null
|
||||
if [ '0' -ne "$?" ]; then
|
||||
echo "Error: Connection failed"
|
||||
log_event "$E_DB" "$EVENT"
|
||||
exit $E_DB
|
||||
fi
|
||||
|
||||
query="CREATE ROLE $DBUSER"
|
||||
psql -h $HOST -U $USER -p $PORT -c "$query" &> /dev/null
|
||||
|
||||
query="UPDATE pg_authid SET rolpassword='$MD5' WHERE rolname='$DBUSER'"
|
||||
psql -h $HOST -U $USER -p $PORT -c "$query" &> /dev/null
|
||||
|
||||
query="CREATE DATABASE $database OWNER $DBUSER"
|
||||
if [ "$TPL" = 'template0' ]; then
|
||||
query="$query ENCODING '$CHARSET' TEMPLATE $TPL"
|
||||
else
|
||||
query="$query TEMPLATE $TPL"
|
||||
fi
|
||||
psql -h $HOST -U $USER -p $PORT -c "$query" &> /dev/null
|
||||
|
||||
query="GRANT ALL PRIVILEGES ON DATABASE $database TO $DBUSER"
|
||||
psql -h $HOST -U $USER -p $PORT -c "$query" &> /dev/null
|
||||
|
||||
query="GRANT CONNECT ON DATABASE template1 to $dbuser"
|
||||
psql -h $HOST -U $USER -p $PORT -c "$query" &> /dev/null
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue