mirror of
https://github.com/serghey-rodin/vesta.git
synced 2025-08-20 05:14:08 -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
|
# Checking shell
|
||||||
shell_conf=$(echo "$package_data" | grep 'SHELL' | cut -f 2 -d \')
|
shell_conf=$(echo "$package_data" | grep 'SHELL' | cut -f 2 -d \')
|
||||||
case $shell_conf in
|
shell=$(/usr/bin/chsh --list-shells | grep -w "$shell_conf" |head -n1)
|
||||||
nologin) shell='/sbin/nologin' ;;
|
|
||||||
bash) shell='/bin/bash' ;;
|
|
||||||
sh) shell='/bin/bash' ;;
|
|
||||||
*) shell='/sbin/nologin' ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Adding user
|
# Adding user
|
||||||
/usr/sbin/adduser "$user" -s "$shell" -c "$email" -m -d "$HOMEDIR/$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
|
chmod 770 $USER_DATA/mail
|
||||||
touch $USER_DATA/mail.conf
|
touch $USER_DATA/mail.conf
|
||||||
chmod 660 $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
|
fi
|
||||||
|
|
||||||
if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
|
if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
|
||||||
touch $USER_DATA/db.conf
|
touch $USER_DATA/db.conf
|
||||||
chmod 660 $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
|
fi
|
||||||
|
|
||||||
if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ]; then
|
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"
|
stats_dir="$HOMEDIR/$user/web/$domain/stats"
|
||||||
|
|
||||||
# Adding htaccess file
|
# Adding htaccess file
|
||||||
rm -f $stats_dir/.htaccess
|
|
||||||
echo "AuthUserFile $stats_dir/.htpasswd
|
echo "AuthUserFile $stats_dir/.htpasswd
|
||||||
AuthName \"Web Statistics\"
|
AuthName \"Web Statistics\"
|
||||||
AuthType Basic
|
AuthType Basic
|
||||||
|
|
|
@ -77,7 +77,7 @@ conf=$VESTA/data/ips/*
|
||||||
fields="\$IP \$OWNER \$STATUS \$NAME \$U_SYS_USERS \$U_WEB_DOMAINS"
|
fields="\$IP \$OWNER \$STATUS \$NAME \$U_SYS_USERS \$U_WEB_DOMAINS"
|
||||||
fields="$fields \$INTERFACE \$NETMASK \$DATE"
|
fields="$fields \$INTERFACE \$NETMASK \$DATE"
|
||||||
|
|
||||||
# Listing domains
|
# Listing ip addresses
|
||||||
case $format in
|
case $format in
|
||||||
json) json_list_ips ;;
|
json) json_list_ips ;;
|
||||||
plain) nohead=1; shell_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
|
# Starting loop
|
||||||
for domain in $(shell_list) ; do
|
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
|
# Parsing domain values
|
||||||
|
domain_idn=$(idn -t --quiet -a "$domain")
|
||||||
get_domain_values 'web'
|
get_domain_values 'web'
|
||||||
|
|
||||||
# Preparing domain values for the template substitution
|
# Preparing domain values for the template substitution
|
||||||
|
@ -78,25 +118,41 @@ for domain in $(shell_list) ; do
|
||||||
|
|
||||||
# Checking stats
|
# Checking stats
|
||||||
if [ ! -z "$STATS" ]; then
|
if [ ! -z "$STATS" ]; then
|
||||||
cat $WEBTPL/$STATS.tpl |\
|
cat $WEBTPL/$STATS.tpl |\
|
||||||
sed -e "s/%ip%/$ip/g" \
|
sed -e "s/%ip%/$ip/g" \
|
||||||
-e "s/%web_port%/$WEB_PORT/g" \
|
-e "s/%web_port%/$WEB_PORT/g" \
|
||||||
-e "s/%web_ssl_port%/$WEB_SSL_PORT/g" \
|
-e "s/%web_ssl_port%/$WEB_SSL_PORT/g" \
|
||||||
-e "s/%proxy_port%/$PROXY_PORT/g" \
|
-e "s/%proxy_port%/$PROXY_PORT/g" \
|
||||||
-e "s/%proxy_ssl_port%/$PROXY_SSL_PORT/g" \
|
-e "s/%proxy_ssl_port%/$PROXY_SSL_PORT/g" \
|
||||||
-e "s/%domain_idn%/$domain_idn/g" \
|
-e "s/%domain_idn%/$domain_idn/g" \
|
||||||
-e "s/%domain%/$domain/g" \
|
-e "s/%domain%/$domain/g" \
|
||||||
-e "s/%user%/$user/g" \
|
-e "s/%user%/$user/g" \
|
||||||
-e "s/%home%/${HOMEDIR////\/}/g" \
|
-e "s/%home%/${HOMEDIR////\/}/g" \
|
||||||
-e "s/%alias%/${aliases//,/ }/g" \
|
-e "s/%alias%/${aliases//,/ }/g" \
|
||||||
-e "s/%alias_idn%/${aliases_idn//,/ }/g" \
|
-e "s/%alias_idn%/${aliases_idn//,/ }/g" \
|
||||||
> $HOMEDIR/$user/conf/web/$STATS.$domain.conf
|
> $HOMEDIR/$user/conf/web/$STATS.$domain.conf
|
||||||
|
|
||||||
stats_string="$BIN/v_update_web_domain_stat $user $domain"
|
stats_string="$BIN/v_update_web_domain_stat $user $domain"
|
||||||
check_stats_pipe=$(grep "$stats_string" $V_QUEUE/stats.pipe)
|
check_stats_pipe=$(grep "$stats_string" $V_QUEUE/stats.pipe)
|
||||||
if [ -z "$check_stats_pipe" ]; then
|
if [ -z "$check_stats_pipe" ]; then
|
||||||
echo "$stats_string" >> $V_QUEUE/stats.pipe
|
echo "$stats_string" >> $V_QUEUE/stats.pipe
|
||||||
fi
|
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
|
fi
|
||||||
|
|
||||||
# Checking ssl
|
# Checking ssl
|
||||||
|
|
|
@ -40,7 +40,7 @@ is_object_unsuspended 'db' 'DB' "$database"
|
||||||
get_database_values
|
get_database_values
|
||||||
|
|
||||||
# Switching on db type
|
# Switching on db type
|
||||||
case $type in
|
case $TYPE in
|
||||||
mysql) suspend_mysql_database ;;
|
mysql) suspend_mysql_database ;;
|
||||||
pgsql) suspend_pgsql_database ;;
|
pgsql) suspend_pgsql_database ;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -39,7 +39,7 @@ is_object_suspended 'db' 'DB' "$database"
|
||||||
get_database_values
|
get_database_values
|
||||||
|
|
||||||
# Switching on db type
|
# Switching on db type
|
||||||
case $type in
|
case $TYPE in
|
||||||
mysql) unsuspend_mysql_database ;;
|
mysql) unsuspend_mysql_database ;;
|
||||||
pgsql) unsuspend_pgsql_database ;;
|
pgsql) unsuspend_pgsql_database ;;
|
||||||
esac
|
esac
|
||||||
|
|
73
func/db.sh
73
func/db.sh
|
@ -515,7 +515,7 @@ get_mysql_disk_usage() {
|
||||||
usage=$(printf "%0.f\n" $usage)
|
usage=$(printf "%0.f\n" $usage)
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get MySQL disk usage
|
# Get PostgreSQL disk usage
|
||||||
get_pgsql_disk_usage() {
|
get_pgsql_disk_usage() {
|
||||||
host_str=$(grep "HOST='$HOST'" $VESTA/conf/pgsql.conf)
|
host_str=$(grep "HOST='$HOST'" $VESTA/conf/pgsql.conf)
|
||||||
eval $host_str
|
eval $host_str
|
||||||
|
@ -546,3 +546,74 @@ get_pgsql_disk_usage() {
|
||||||
usage=1
|
usage=1
|
||||||
fi
|
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