New database key structure

This commit is contained in:
Serghey Rodin 2012-02-16 17:18:05 +02:00
commit a87fcd9555
8 changed files with 320 additions and 220 deletions

View file

@ -124,8 +124,8 @@ touch $V_USERS/$user/backup.conf
chmod 660 $V_USERS/$user/backup.conf chmod 660 $V_USERS/$user/backup.conf
touch $V_USERS/$user/history.log touch $V_USERS/$user/history.log
chmod 660 $V_USERS/$user/history.log chmod 660 $V_USERS/$user/history.log
touch $V_USERS/$user/billing.log touch $V_USERS/$user/stats.log
chmod 660 $V_USERS/$user/billing.log chmod 660 $V_USERS/$user/stats.log
echo "v_update_user_disk $user" >> $V_QUEUE/disk.pipe echo "v_update_user_disk $user" >> $V_QUEUE/disk.pipe
@ -180,8 +180,12 @@ SUSPENDED_MAIL='0'
SUSPENDED_DB='0' SUSPENDED_DB='0'
SUSPENDED_CRON='0' SUSPENDED_CRON='0'
IP_OWNED='0' IP_OWNED='0'
U_DIR_DISK='0' U_USERS='0'
U_DISK='0' U_DISK='0'
U_DISK_DIRS='0'
U_DISK_WEB='0'
U_DISK_MAIL='0'
U_DISK_DB='0'
U_BANDWIDTH='0' U_BANDWIDTH='0'
U_WEB_DOMAINS='0' U_WEB_DOMAINS='0'
U_WEB_SSL='0' U_WEB_SSL='0'

View file

@ -57,16 +57,11 @@ is_package_avalable() {
change_user_package() { change_user_package() {
# Parsing user data # Parsing user data
usr_data=$(cat $V_USERS/$user/user.conf) usr_data=$(cat $V_USERS/$user/user.conf)
IFS=$'\n' eval $usr_data
for key in $usr_data; do
eval ${key%%=*}=${key#*=}
done
# Parsing package # Parsing package
pkg_data=$(cat $V_PKG/$package.pkg) pkg_data=$(cat $V_PKG/$package.pkg)
for key in $pkg_data; do eval $pkg_data
eval ${key%%=*}=${key#*=}
done
echo "FNAME='$FNAME' echo "FNAME='$FNAME'
LNAME='$LNAME' LNAME='$LNAME'
@ -96,8 +91,12 @@ SUSPENDED_MAIL='$SUSPENDED_MAIL'
SUSPENDED_DB='$SUSPENDED_DB' SUSPENDED_DB='$SUSPENDED_DB'
SUSPENDED_CRON='$SUSPENDED_CRON' SUSPENDED_CRON='$SUSPENDED_CRON'
IP_OWNED='$IP_OWNED' IP_OWNED='$IP_OWNED'
U_DIR_DISK='$U_DIR_DISK' U_USERS='$U_USERS'
U_DISK='$U_DISK' U_DISK='$U_DISK'
U_DISK_DIRS='$U_DISK_DIRS'
U_DISK_WEB='$U_DISK_WEB'
U_DISK_MAIL='$U_DISK_MAIL'
U_DISK_DB='$U_DISK_DB'
U_BANDWIDTH='$U_BANDWIDTH' U_BANDWIDTH='$U_BANDWIDTH'
U_WEB_DOMAINS='$U_WEB_DOMAINS' U_WEB_DOMAINS='$U_WEB_DOMAINS'
U_WEB_SSL='$U_WEB_SSL' U_WEB_SSL='$U_WEB_SSL'

View file

@ -22,14 +22,11 @@ source $V_FUNC/shared.func
json_list_user() { json_list_user() {
i=1 i=1
fileds_count=$(echo "$fields" | wc -w) fileds_count=$(echo "$fields" | wc -w)
line=$(cat $V_USERS/$USER/user.conf) source $V_USERS/$USER/user.conf
# Print top bracket # Print top bracket
echo '{' echo '{'
# Assing key=value
eval $line
# Starting output loop # Starting output loop
for field in $fields; do for field in $fields; do
# Parsing key=value # Parsing key=value
@ -59,12 +56,8 @@ json_list_user() {
# Shell function # Shell function
shell_list_user() { shell_list_user() {
line=$(cat $V_USERS/$USER/user.conf) source $V_USERS/$USER/user.conf
# Parsing key=value
eval $line
# Print result line
for field in $fields; do for field in $fields; do
eval key="$field" eval key="$field"
echo "${field//$/}: $key " echo "${field//$/}: $key "
@ -98,10 +91,10 @@ fields='$USER $FNAME $LNAME $PACKAGE $WEB_DOMAINS $WEB_ALIASES $WEB_TPL
$DNS_DOMAINS $DNS_RECORDS $MAIL_DOMAINS $MAIL_ACCOUNTS $DATABASES $DNS_DOMAINS $DNS_RECORDS $MAIL_DOMAINS $MAIL_ACCOUNTS $DATABASES
$CRON_JOBS $DISK_QUOTA $BANDWIDTH $NS $SHELL $BACKUPS $CONTACT $REPORTS $CRON_JOBS $DISK_QUOTA $BANDWIDTH $NS $SHELL $BACKUPS $CONTACT $REPORTS
$RKEY $SUSPENDED $SUSPENDED_USERS $SUSPENDED_WEB $SUSPENDED_DNS $RKEY $SUSPENDED $SUSPENDED_USERS $SUSPENDED_WEB $SUSPENDED_DNS
$SUSPENDED_MAIL $SUSPENDED_DB $SUSPENDED_CRON $IP_OWNED $U_DIR_DISK $U_DISK $SUSPENDED_MAIL $SUSPENDED_DB $SUSPENDED_CRON $IP_OWNED $U_USERS
$U_BANDWIDTH $U_WEB_DOMAINS $U_WEB_SSL $U_WEB_ALIASES $U_DNS_DOMAINS $U_DISK $U_DISK_DIRS $U_DISK_WEB $U_DISK_MAIL $U_DISK_DB $U_BANDWIDTH
$U_DNS_RECORDS $U_MAIL_DOMAINS $U_MAIL_ACCOUNTS $U_DATABASES $U_CRON_JOBS $U_WEB_DOMAINS $U_WEB_SSL $U_WEB_ALIASES $U_DNS_DOMAINS $U_DNS_RECORDS
$DATE' $U_MAIL_DOMAINS $U_MAIL_ACCOUNTS $U_DATABASES $U_CRON_JOBS $DATE'
# Listing user # Listing user
case $format in case $format in

View file

@ -23,10 +23,7 @@ json_list_users() {
# Starting main loop # Starting main loop
for USER in $(ls $V_USERS/); do for USER in $(ls $V_USERS/); do
# Reading user data # Reading user data
user_data=$(cat $V_USERS/$USER/user.conf) source $V_USERS/$USER/user.conf
# Assign key/value config
eval $user_data
# Closing bracket if there already was output # Closing bracket if there already was output
if [ -n "$data" ]; then if [ -n "$data" ]; then
@ -74,11 +71,7 @@ shell_list_users() {
# Starting main loop # Starting main loop
for USER in $(ls $V_USERS/); do for USER in $(ls $V_USERS/); do
user_data=$(cat $V_USERS/$USER/user.conf) source $V_USERS/$USER/user.conf
# Assign key/value config
eval $user_data
eval echo "$fields" eval echo "$fields"
done done
} }
@ -95,8 +88,9 @@ fields="$fields \$DATABASES \$CRON_JOBS \$DISK_QUOTA \$BANDWIDTH \$NS \$SHELL"
fields="$fields \$BACKUPS \$CONTACT \$REPORTS \$RKEY \$SUSPENDED" fields="$fields \$BACKUPS \$CONTACT \$REPORTS \$RKEY \$SUSPENDED"
fields="$fields \$SUSPENDED_USERS \$SUSPENDED_WEB \$SUSPENDED_DNS" fields="$fields \$SUSPENDED_USERS \$SUSPENDED_WEB \$SUSPENDED_DNS"
fields="$fields \$SUSPENDED_MAIL \$SUSPENDED_DB \$SUSPENDED_CRON \$IP_OWNED" fields="$fields \$SUSPENDED_MAIL \$SUSPENDED_DB \$SUSPENDED_CRON \$IP_OWNED"
fields="$fields \$U_DIR_DISK \$U_DISK \$U_BANDWIDTH \$U_WEB_DOMAINS" fields="$fields \$U_USERS \$U_DISK \$U_DISK_DIRS \$U_DISK_WEB \$U_DISK_MAIL"
fields="$fields \$U_WEB_SSL \$U_WEB_ALIASES \$U_DNS_DOMAINS \$U_DNS_RECORDS" fields="$fields \$U_DISK_DB \$U_BANDWIDTH \$U_WEB_DOMAINS \$U_WEB_SSL"
fields="$fields \$U_WEB_ALIASES \$U_DNS_DOMAINS \$U_DNS_RECORDS "
fields="$fields \$U_MAIL_DOMAINS \$U_MAIL_ACCOUNTS \$U_DATABASES \$U_CRON_JOBS" fields="$fields \$U_MAIL_DOMAINS \$U_MAIL_ACCOUNTS \$U_DATABASES \$U_CRON_JOBS"
fields="$fields \$DATE" fields="$fields \$DATE"

View file

@ -1,152 +0,0 @@
#!/bin/bash
# info: update billing user billing
# options: user
#
# Function logs user parameters into billing database.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument defenition
user=$1
# Importing system enviroment as we run this script
# mostly by cron wich not read it by itself
source /etc/profile.d/vesta.sh
# Importing variables
source $VESTA/conf/vars.conf
source $V_CONF/vesta.conf
source $V_FUNC/shared.func
source $V_FUNC/domain.func
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
# Checking arg number
check_args '0' "$#" 'user'
# If user specified
if [ ! -z "$user" ]; then
# Checking argument format
format_validation 'user'
# Checking user
is_user_valid
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Creating user_list
if [ -z "$user" ]; then
user_list=$(ls $V_USERS/)
else
user_list="$user"
fi
# Updating user billing
for user in $user_list; do
# Checking web system
if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
# Cleaning value
U_DISK_WEB_DOMAINS=''
# Defining config
conf="$V_USERS/$user/web.conf"
# Defining fileds to select
field='$DOMAIN'
# Defining search string
search_string="DOMAIN='"
# Receiving user domain list
domains=$(dom_clear_search)
# Starting domain loop
i='1'; for domain in $domains; do
# Assigning domain values
u_disk=$(get_web_domain_value '$U_DISK')
u_band=$(get_web_domain_value '$U_BANDWIDTH')
disk="$domain:$u_disk"
band="$domain:$u_band"
if [ "$i" -eq '1' ]; then
U_DISK_WEB_DOMAINS="$disk"
U_BANDWIDTH_WEB_DOMAINS="$band"
else
U_DISK_WEB_DOMAINS="$U_DISK_WEB_DOMAINS,$disk"
U_BANDWIDTH_WEB_DOMAINS="$U_BANDWIDTH_WEB_DOMAINS,$band"
fi
# Itterating
i=$((i + 1))
done
fi
# Checking mail system
if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
#FIXME
ok='ok'
fi
# Checking db system
if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
#FIXME
ok='ok'
fi
# Importing user values
source $V_USERS/$user/user.conf
# Redefining date
DATE=$(date -d "$(date +'%m/01') -1day" +%F)
# Compiling report string
v_str="DATE='$DATE' PACKAGE='$PACKAGE'"
v_str="$v_str U_DISK='$U_DISK' U_BANDWIDTH='$U_BANDWIDTH'"
v_str="$v_str U_WEB_DOMAINS='$U_WEB_DOMAINS' U_WEB_SSL='$U_WEB_SSL'"
v_str="$v_str U_DNS_DOMAINS='$U_DNS_DOMAINS' U_DATABASES='$U_DATABASES'"
v_str="$v_str U_MAIL_DOMAINS='$U_MAIL_DOMAINS' IP_OWNED='$IP_OWNED'"
v_str="$v_str U_DISK_WEB_DOMAINS='$U_DISK_WEB_DOMAINS'"
v_str="$v_str U_BANDWIDTH_WEB_DOMAINS='$U_BANDWIDTH_WEB_DOMAINS'"
v_str="$v_str U_CRON_JOBS"
# Updating user billing log
billing="$V_USERS/$user/billing.log"
if [ -e "$billing" ]; then
# Checking dublicates
check_month=$(grep -n "DATE='$DATE'" $billing|cut -f 1 -d :)
if [ -z "$check_month" ]; then
# Updating as there no dublicates
echo "$v_str" >> $billing
chmod 660 $billing
else
# Replacing string with new data
sed -i "$check_month s/.*/$v_str/" $billing
fi
else
# Creating billing log
echo "$v_str" >$billing
chmod 660 $billing
fi
done
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
log_event 'system' "$V_EVENT"
exit

190
bin/v_update_user_counters Executable file
View file

@ -0,0 +1,190 @@
#!/bin/bash
# info: update user usage counters
# options: user
#
# Function updates usage counters like U_WEB_DOMAINS, U_MAIL_ACCOUNTS, etc.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument defenition
user=$1
# Importing variables
source $VESTA/conf/vars.conf
source $V_CONF/vesta.conf
source $V_FUNC/shared.func
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
# Checking arg number
check_args '0' "$#" 'user'
# If user specified
if [ ! -z "$user" ]; then
# Checking argument format
format_validation 'user'
# Checking user
is_user_valid
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Creating user_list
if [ -z "$user" ]; then
user_list=$(ls $V_USERS/)
else
user_list="$user"
fi
# Updating user stats
for user in $user_list; do
# Cleaning counters
SUSPENDED_USERS=0
SUSPENDED_WEB=0
SUSPENDED_DNS=0
SUSPENDED_MAIL=0
SUSPENDED_DB=0
SUSPENDED_CRON=0
IP_OWNED=0
U_USERS=0
DISK=0
U_DISK=0
U_DISK_DIRS=$(get_user_value '$U_DISK_DIRS')
if [ -z "$U_DISK_DIRS" ]; then
U_DISK_DIRS=0
fi
U_DISK_WEB=0
U_DISK_MAIL=0
U_DISK_DB=0
BANDWIDTH=0
U_BANDWIDTH=0
U_WEB_DOMAINS=0
U_WEB_SSL=0
U_WEB_ALIASES=0
U_DNS_DOMAINS=0
U_DNS_RECORDS=0
U_MAIL_DOMAINS=0
U_MAIL_ACCOUNTS=0
U_DATABASES=0
U_CRON_JOBS=0
# New IFS
IFS=$'\n'
# Checking users
if [ "$user" = 'vesta' ]; then
SUSPENDED_USERS=$(grep "SUSPENDED='yes'" $V_USERS/*/user.conf|wc -l)
U_USERS=$(ls $V_USERS/|wc -l)
U_USERS=$((U_USERS - 1))
fi
# Checking ip
for ip in $(ls $V_IPS) ;do
source $V_IPS/$ip
if [ "$OWNER" = "$user" ]; then
IP_OWNED=$((IP_OWNED + 1))
fi
done
# Checking web system
for domain_str in $(cat $V_USERS/$user/web.conf) ;do
eval $domain_str
U_DISK_WEB=$((U_DISK_WEB + U_DISK))
U_WEB_DOMAINS=$((U_WEB_DOMAINS + 1))
if [ "$SSL" = 'yes' ]; then
U_WEB_SSL=$((U_WEB_SSL + 1))
fi
if [ "$SUSPENDED" = 'yes' ]; then
SUSPENDED_WEB=$((SUSPENDED_WEB + 1))
fi
if [ ! -z "$ALIAS" ]; then
aliases=$(echo "$ALIAS"|tr ',' '\n'| wc -l)
aliases=$((aliases + 1))
U_WEB_ALIASES=$((U_WEB_ALIASES + aliases))
fi
BANDWIDTH=$((BANDWIDTH + U_BANDWIDTH))
done
DISK=$((DISK + U_DISK_WEB))
# Checking dns system
for domain_str in $(cat $V_USERS/$user/dns.conf); do
eval $domain_str
U_DNS_DOMAINS=$((U_DNS_DOMAINS + 1))
records=$(wc -l $V_USERS/$user/dns/$DOMAIN| cut -f 1 -d ' ')
U_DNS_RECORDS=$((U_DNS_RECORDS + records))
if [ "$SUSPENDED" = 'yes' ]; then
SUSPENDED_DNS=$((SUSPENDED_DNS + 1))
fi
done
# Checking mail system
SUSPENDED_MAIL=0
DISK=$((DISK + U_DISK_MAIL))
# Checking db system
for db_str in $(cat $V_USERS/$user/db.conf); do
eval $db_str
U_DISK_DB=$((U_DISK_DB + U_DISK))
U_DATABASES=$((U_DATABASES + 1))
if [ "$SUSPENDED" = 'yes' ]; then
SUSPENDED_DB=$((SUSPENDED_DB + 1))
fi
done
DISK=$((DISK + U_DISK_DB))
# Checking mail system
for cron_str in $(cat $V_USERS/$user/cron.conf);do
eval $cron_str
U_CRON_JOBS=$((U_CRON_JOBS + 1))
if [ "$SUSPENDED" = 'yes' ]; then
SUSPENDED_CRON=$((SUSPENDED_CRON + 1))
fi
done
U_DISK=$DISK
U_BANDWIDTH=$BANDWIDTH
update_user_value "$user" '$SUSPENDED_USERS' "$SUSPENDED_USERS"
update_user_value "$user" '$SUSPENDED_WEB' "$SUSPENDED_WEB"
update_user_value "$user" '$SUSPENDED_DNS' "$SUSPENDED_DNS"
update_user_value "$user" '$SUSPENDED_MAIL' "$SUSPENDED_MAIL"
update_user_value "$user" '$SUSPENDED_DB' "$SUSPENDED_DB"
update_user_value "$user" '$SUSPENDED_CRON' "$SUSPENDED_CRON"
update_user_value "$user" '$IP_OWNED' "$IP_OWNED"
update_user_value "$user" '$U_USERS' "$U_USERS"
update_user_value "$user" '$U_DISK' "$U_DISK"
update_user_value "$user" '$U_DISK_DIRS' "$U_DISK_DIRS"
update_user_value "$user" '$U_DISK_WEB' "$U_DISK_WEB"
update_user_value "$user" '$U_DISK_MAIL' "$U_DISK_MAIL"
update_user_value "$user" '$U_DISK_DB' "$U_DISK_DB"
update_user_value "$user" '$U_BANDWIDTH' "$U_BANDWIDTH"
update_user_value "$user" '$U_WEB_DOMAINS' "$U_WEB_DOMAINS"
update_user_value "$user" '$U_WEB_SSL' "$U_WEB_SSL"
update_user_value "$user" '$U_WEB_ALIASES' "$U_WEB_ALIASES"
update_user_value "$user" '$U_DNS_DOMAINS' "$U_DNS_DOMAINS"
update_user_value "$user" '$U_DNS_RECORDS' "$U_DNS_RECORDS"
update_user_value "$user" '$U_MAIL_DOMAINS' "$U_MAIL_DOMAINS"
update_user_value "$user" '$U_MAIL_ACCOUNTS' "$U_MAIL_ACCOUNTS"
update_user_value "$user" '$U_DATABASES' "$U_DATABASES"
update_user_value "$user" '$U_CRON_JOBS' "$U_CRON_JOBS"
done
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
log_event 'system' "$V_EVENT"
exit

101
bin/v_update_user_stats Executable file
View file

@ -0,0 +1,101 @@
#!/bin/bash
# info: update user statistics
# options: user
#
# Function logs user parameters into statistics database.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument defenition
user=$1
# Importing system enviroment as we run this script
# mostly by cron wich not read it by itself
source /etc/profile.d/vesta.sh
# Importing variables
source $VESTA/conf/vars.conf
source $V_CONF/vesta.conf
source $V_FUNC/shared.func
source $V_FUNC/domain.func
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
# Checking arg number
check_args '0' "$#" 'user'
# If user specified
if [ ! -z "$user" ]; then
# Checking argument format
format_validation 'user'
# Checking user
is_user_valid
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Creating user_list
if [ -z "$user" ]; then
user_list=$(ls $V_USERS/)
else
user_list="$user"
fi
# Updating user stats
for user in $user_list; do
# Importing user values
source $V_USERS/$user/user.conf
DATE=$(date -d "$(date +'%m/01') -1day" +%F)
# Compiling report string
s="DATE='$DATE' PACKAGE='$PACKAGE' IP_OWNED='$IP_OWNED'"
s="$s U_DISK='$U_DISK' U_DISK_DIRS='$U_DISK_DIRS' U_DISK_WEB='$U_DISK_WEB'"
s="$s U_DISK_MAIL='$U_DISK_MAIL' U_DISK_DB='$U_DISK_DB'"
s="$s U_DISK_DATABASES='$U_DISK_DATABASES'"
s="$s U_BANDWIDTH='$U_BANDWIDTH' U_WEB_DOMAINS='$U_WEB_DOMAINS'"
s="$s U_WEB_SSL='$U_WEB_SSL' U_WEB_ALIASES='$U_WEB_ALIASES'"
s="$s U_DNS_DOMAINS='$U_DNS_DOMAINS' U_DNS_RECORDS='$U_DNS_RECORDS'"
s="$s U_MAIL_DOMAINS='$U_MAIL_DOMAINS' U_MAIL_DOMAINS='$U_MAIL_DOMAINS'"
s="$s U_MAIL_ACCOUNTS='$U_MAIL_ACCOUNTS' U_DATABASES='$U_DATABASES'"
s="$s U_CRON_JOBS='$U_CRON_JOBS'"
# Updating user stats log
stats="$V_USERS/$user/stats.log"
if [ -e "$stats" ]; then
# Checking dublicates
check_month=$(grep -n "DATE='$DATE'" $stats|cut -f 1 -d :)
if [ -z "$check_month" ]; then
# Updating as there no dublicates
echo "$s" >> $stats
chmod 660 $stats
else
# Replacing string with new data
sed -i "$check_month s/.*/$s/" $stats
fi
else
# Creating stats log
echo "$s" >$stats
chmod 660 $stats
fi
done
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
log_event 'system' "$V_EVENT"
exit

View file

@ -652,23 +652,11 @@ is_template_valid() {
esac esac
} }
get_user_value() { get_user_value() {
key="$1" key="$1"
USER="$user" USER="$user"
source $V_USERS/$user/user.conf
# Parsing domains
string=$( cat $V_USERS/$user/user.conf )
# Parsing key=value
for keys in $string; do
eval ${keys%%=*}=${keys#*=}
done
# Self reference
eval value="$key" eval value="$key"
# Print value
echo "$value" echo "$value"
} }
@ -691,31 +679,14 @@ is_package_valid() {
update_user_value() { update_user_value() {
USER="$1" USER="$1"
key="$2" key="${2//$}"
value="$3" value="$3"
# Defining conf
conf="$V_USERS/$USER/user.conf" conf="$V_USERS/$USER/user.conf"
old=$(grep "$key=" $conf | cut -f 2 -d \')
# Parsing conf
str=$(cat $conf)
# Reading key=values
for keys in $str; do
eval ${keys%%=*}=${keys#*=}
done
# Define clean key
c_key=$(echo "${key//$/}")
eval old="${key}"
# Escaping slashes
old=$(echo "$old" | sed -e 's/\\/\\\\/g' -e 's/&/\\&/g' -e 's/\//\\\//g')
new=$(echo "$value" | sed -e 's/\\/\\\\/g' -e 's/&/\\&/g' -e 's/\//\\\//g')
# Updating conf # Updating conf
sed -i "s/$c_key='${old//\*/\\*}'/$c_key='${new//\*/\\*}'/g" $conf sed -i "s/$key='$old'/$key='$value'/g" $conf
} }
increase_user_value() { increase_user_value() {