mirror of
https://github.com/serghey-rodin/vesta.git
synced 2025-08-13 10:07:42 -07:00
listing scripts refactoring + new format
This commit is contained in:
parent
b7e9f4b5b0
commit
6e0ef668bb
60 changed files with 3695 additions and 1991 deletions
bin
v-list-backup-hostv-list-cron-jobv-list-cron-jobsv-list-databasev-list-database-hostv-list-database-hostsv-list-database-typesv-list-databasesv-list-dns-domainv-list-dns-domainsv-list-dns-recordsv-list-dns-templatev-list-dns-templatesv-list-firewallv-list-firewall-banv-list-firewall-rulev-list-mail-accountv-list-mail-account-autoreplyv-list-mail-accountsv-list-mail-domainv-list-mail-domain-dkimv-list-mail-domain-dkim-dnsv-list-mail-domainsv-list-remote-dns-hostsv-list-sys-configv-list-sys-db-statusv-list-sys-infov-list-sys-interfacesv-list-sys-ipv-list-sys-ipsv-list-sys-languagesv-list-sys-rrdv-list-sys-servicesv-list-sys-shellsv-list-sys-usersv-list-sys-vesta-autoupdatev-list-sys-vesta-updatesv-list-userv-list-user-backupv-list-user-backup-exclusionsv-list-user-backupsv-list-user-favouritesv-list-user-ipsv-list-user-logv-list-user-notificationsv-list-user-nsv-list-user-packagev-list-user-packagesv-list-user-statsv-list-usersv-list-users-statsv-list-web-domainv-list-web-domain-accesslogv-list-web-domain-errorlogv-list-web-domain-sslv-list-web-domainsv-list-web-statsv-list-web-templatesv-list-web-templates-backendv-list-web-templates-proxy
|
@ -1,6 +1,6 @@
|
|||
#!/bin/bash
|
||||
# info: list backup host
|
||||
# options: TYPE [FORMAT]
|
||||
# options: TYPE HOST [FORMAT]
|
||||
#
|
||||
# The function for obtaining the list of backup host parameters.
|
||||
|
||||
|
@ -10,46 +10,55 @@
|
|||
#----------------------------------------------------------#
|
||||
|
||||
# Argument definition
|
||||
TYPE=$1
|
||||
type=$1
|
||||
format=${2-shell}
|
||||
|
||||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_ftp_host() {
|
||||
i=1
|
||||
fileds_count=$(echo "$fields" | wc -w)
|
||||
ip_data=$(cat $VESTA/conf/$TYPE.backup.conf)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '{'
|
||||
echo -e "\t\"$TYPE\": {"
|
||||
eval $ip_data
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ $fileds_count -eq $i ]; then
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
|
||||
fi
|
||||
(( ++i))
|
||||
done
|
||||
if [ -n "$value" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
echo -e '}'
|
||||
echo ' "'$type'": {
|
||||
"HOST": "'$HOST'",
|
||||
"USERNAME": "'$USERNAME'",
|
||||
"PORT": "'$PORT'",
|
||||
"TYPE": "'$type'",
|
||||
"BPATH": "'$BPATH'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_ftp_host() {
|
||||
line=$(cat $VESTA/conf/$TYPE.backup.conf)
|
||||
eval $line
|
||||
for field in $fields; do
|
||||
eval key="$field"
|
||||
if [ -z "$key" ]; then
|
||||
key='NULL'
|
||||
fi
|
||||
echo "${field//$/}: $key "
|
||||
done
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "HOST: $HOST"
|
||||
echo "USERNAME: $USERNAME"
|
||||
echo "PORT: $PORT"
|
||||
echo "TYPE: $type"
|
||||
echo "PATH: $BPATH"
|
||||
echo "TIME: $TIME"
|
||||
echo "DATE: $DATE"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo -e "$HOST\t$USERNAME\t$PORT\t$type\t$BPATH\t$TIME\t$DATE"
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "HOST,USERNAME,PORT,TYPE,PATH,TIME,DATE"
|
||||
echo "$HOST,$USERNAME,$PORT,$type,$BPATH,$TIME,$DATE"
|
||||
}
|
||||
|
||||
# Type format validator
|
||||
is_type_format_valid() {
|
||||
exclude="[!|#|$|^|&|(|)|+|=|{|}|:|@|<|>|?|/|\|\"|'|;|%|\`| ]|\."
|
||||
if [[ "$1" =~ $exclude ]]; then
|
||||
check_result $E_INVALID "invalid type extention format :: $1"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
@ -58,25 +67,27 @@ shell_list_ftp_host() {
|
|||
#----------------------------------------------------------#
|
||||
|
||||
check_args '1' "$#" 'TYPE [FORMAT]'
|
||||
is_type_format_valid "$type"
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
if [ ! -e "$VESTA/conf/$TYPE.backup.conf" ]; then
|
||||
# Checking backup config
|
||||
if [ ! -e "$VESTA/conf/$type.backup.conf" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
# Defining fileds to select
|
||||
fields='$HOST $USERNAME $PORT $TYPE $BPATH $TIME $DATE'
|
||||
# Parsing backup config
|
||||
source "$VESTA/conf/$type.backup.conf"
|
||||
|
||||
# Listing database
|
||||
case $format in
|
||||
json) json_list_ftp_host ;;
|
||||
plain) nohead=1; shell_list_ftp_host;;
|
||||
shell) shell_list_ftp_host | column -t ;;
|
||||
*) check_args '2' '0' '[FORMAT]'
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# info: list cron job
|
||||
# options: USER JOB [FORMAT]
|
||||
#
|
||||
# The function of obtaining cron job settings.
|
||||
# The function of obtaining cron job parameters.
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
|
@ -17,44 +17,46 @@ format=${3-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_job() {
|
||||
i=1
|
||||
fileds_count=$(echo "$fields" | wc -w)
|
||||
line=$(grep "JOB='$job'" $conf)
|
||||
echo '{'
|
||||
eval $line
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
value=$(echo "$value"|sed -e 's/"/\\"/g' -e "s/%quote%/'/g")
|
||||
if [ "$i" -eq 1 ]; then
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ "$fileds_count" -eq "$i" ]; then
|
||||
echo -e "\t\t\"${field//$/}\": \"$value\""
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"$value\","
|
||||
fi
|
||||
fi
|
||||
(( ++i))
|
||||
done
|
||||
if [ -n "$value" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
echo -e "}"
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo "{"
|
||||
echo -n ' "'$job'": {
|
||||
"MIN": "'$MIN'",
|
||||
"HOUR": "'$HOUR'",
|
||||
"DAY": "'$HOUR'",
|
||||
"MONTH": "'$MONTH'",
|
||||
"WDAY": "'$WDAY'",
|
||||
"CMD": "'$CMD'",
|
||||
"JOB": "'$JOB'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
echo
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_job() {
|
||||
line=$(grep "JOB='$job'" $conf)
|
||||
eval $line
|
||||
for field in $fields; do
|
||||
eval key="$field"
|
||||
if [ -z "$key" ]; then
|
||||
key=NULL
|
||||
fi
|
||||
echo "${field//$/}: $key "
|
||||
done
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "MINUTE: $MIN"
|
||||
echo "HOUR: $HOUR"
|
||||
echo "DAY: $DAY"
|
||||
echo "DAY OF WEEK: $WDAY"
|
||||
echo "COMMAND: $CMD"
|
||||
echo "SUSPENDED: $SUSPENDED"
|
||||
echo "TIME: $TIME"
|
||||
echo "DATE: $DATE"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo -e "$MIN\t$HOUR\t$DAY\t$WDAY\t$CMD\t$SUSPENDED\t$TIME\t$DATE"
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "MIN,HOUR,DAY,WDAY,CMD,SUSPENDED,TIME,DATE"
|
||||
echo "$MIN,$HOUR,$DAY,$WDAY,\"$CMD\",$SUSPENDED,$TIME,$DATE'"
|
||||
}
|
||||
|
||||
|
||||
|
@ -63,6 +65,8 @@ shell_list_job() {
|
|||
#----------------------------------------------------------#
|
||||
|
||||
check_args '2' "$#" 'USER JOB [FORMAT]'
|
||||
is_format_valid 'user'
|
||||
is_number_format_valid "$job" "job_id"
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
|
||||
|
||||
|
@ -70,17 +74,27 @@ is_object_valid 'user' 'USER' "$user"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining config and fields to select
|
||||
# Defining config
|
||||
conf=$USER_DATA/cron.conf
|
||||
fields="\$JOB \$MIN \$HOUR \$DAY \$MONTH \$WDAY \$CMD \$SUSPENDED"
|
||||
fields="$fields \$TIME \$DATE"
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
json) json_list_job ;;
|
||||
plain) nohead=1; shell_list_job ;;
|
||||
shell) shell_list_job |column -t ;;
|
||||
*) check_args '2' '0' 'USER JOB [FORMAT]'
|
||||
# Checking job id
|
||||
cron_line=$(grep "JOB='$job'" $conf)
|
||||
if [ -z "$cron_line" ]; then
|
||||
check_result $E_NOTEXIST "cron job $job doesn't exist"
|
||||
fi
|
||||
|
||||
# Parsing cron job
|
||||
eval $cron_line
|
||||
|
||||
# Replacing quoted and backslahed text
|
||||
CMD=$(echo "$CMD" |sed -e 's/"/\\"/g' -e "s/%quote%/'/g")
|
||||
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -16,53 +16,71 @@ format=${2-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json list function
|
||||
json_list_cron() {
|
||||
echo '{'
|
||||
fileds_count=$(echo $fields| wc -w )
|
||||
while read line; do
|
||||
eval $line
|
||||
if [ -n "$data" ]; then
|
||||
echo -e ' },'
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=$(grep JOB $USER_DATA/cron.conf |wc -l)
|
||||
echo "{"
|
||||
while read str; do
|
||||
eval $str
|
||||
CMD=$(echo "$CMD" |sed -e 's/"/\\"/g' -e "s/%quote%/'/g")
|
||||
echo -n ' "'$JOB'": {
|
||||
"MIN": "'$MIN'",
|
||||
"HOUR": "'$HOUR'",
|
||||
"DAY": "'$DAY'",
|
||||
"MONTH": "'$MONTH'",
|
||||
"WDAY": "'$WDAY'",
|
||||
"CMD": "'$CMD'",
|
||||
"JOB": "'$JOB'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
i=1
|
||||
IFS=' '
|
||||
for field in $fields; do
|
||||
eval value=\"$field\"
|
||||
value=$(echo "$value"|sed -e 's/"/\\"/g' -e "s/%quote%/'/g")
|
||||
if [ $i -eq 1 ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ $i -lt $fileds_count ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
|
||||
data=1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
done < $conf
|
||||
if [ -n "$data" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
echo -e '}'
|
||||
((i++))
|
||||
done < <(cat $USER_DATA/cron.conf)
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell list function
|
||||
shell_list_cron() {
|
||||
if [ -z "$nohead" ] ; then
|
||||
echo "${fields//$/}"
|
||||
for a in $fields; do
|
||||
echo -e "------ \c"
|
||||
done
|
||||
echo
|
||||
fi
|
||||
while read line ; do
|
||||
eval $line
|
||||
eval echo "$fields" | sed -e "s/%quote%/'/g"
|
||||
done < $conf
|
||||
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
IFS=$'\n'
|
||||
echo "JOB^MIN^HOUR^MONTH^WDAY^COMMAND"
|
||||
echo "---^---^----^-----^----^-------"
|
||||
while read str; do
|
||||
eval $str
|
||||
CMD=$(echo "$CMD" |sed -e 's/"/\\"/g' -e "s/%quote%/'/g")
|
||||
echo "$JOB^$MIN^$HOUR^$MONTH^$WDAY^$CMD"
|
||||
done < <(cat $USER_DATA/cron.conf)
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
IFS=$'\n'
|
||||
while read str; do
|
||||
eval $str
|
||||
CMD=$(echo "$CMD" |sed -e 's/"/\\"/g' -e "s/%quote%/'/g")
|
||||
echo -ne "$JOB\t$MIN\t$HOUR\t$MONTH\t$WDAY\t$CMD\t"
|
||||
echo -e "$SUSPENDED\t$TIME\t$DATE"
|
||||
done < <(cat $USER_DATA/cron.conf)
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
IFS=$'\n'
|
||||
echo "MIN,HOUR,DAY,WDAY,CMD,SUSPENDED,TIME,DATE"
|
||||
while read str; do
|
||||
eval $str
|
||||
CMD=$(echo "$CMD" |sed -e 's/"/\\"/g' -e "s/%quote%/'/g")
|
||||
echo -n "$JOB,$MIN,$HOUR,$MONTH,$WDAY,\"$CMD\","
|
||||
echo "$SUSPENDED,$TIME,$DATE"
|
||||
done < <(cat $USER_DATA/cron.conf)
|
||||
}
|
||||
|
||||
|
||||
|
@ -71,7 +89,7 @@ shell_list_cron() {
|
|||
#----------------------------------------------------------#
|
||||
|
||||
check_args '1' "$#" 'USER [FORMAT]'
|
||||
validate_format 'user'
|
||||
is_format_valid 'user'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
|
||||
|
||||
|
@ -79,23 +97,12 @@ is_object_valid 'user' 'USER' "$user"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining config
|
||||
conf=$USER_DATA/cron.conf
|
||||
|
||||
# Defining fileds to select
|
||||
fields='$JOB $MIN $HOUR $DAY $MONTH $WDAY $CMD $JOB $SUSPENDED $TIME $DATE'
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
json) json_list_cron ;;
|
||||
plain) nohead=1;
|
||||
fields="\"\$JOB\" \"\$SUSPENDED\" \"\$MIN\" \"\$HOUR\" \"\$DAY\""
|
||||
fields="$fields \"\$MONTH\" \"\$WDAY\" \"\$CMD\" ";
|
||||
fields="$fields \"\$TIME\" \"\$DATE\""
|
||||
shell_list_cron ;;
|
||||
shell) fields='$JOB~$SUSPENDED~$MIN~$HOUR~$DAY~$MONTH~$WDAY~$CMD';
|
||||
shell_list_cron |column -t -s '~';;
|
||||
*) check_args '1' '0' 'USER [FORMAT]' ;;
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t -s '^';;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -17,40 +17,46 @@ format=${3-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_db() {
|
||||
i=1
|
||||
last_word=$(echo "$fields" | wc -w)
|
||||
line=$(grep "DB='$database'" $conf)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '{'
|
||||
eval $line
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ "$i" -eq 1 ]; then
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ "$last_word" -eq "$i" ]; then
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
|
||||
fi
|
||||
fi
|
||||
(( ++i))
|
||||
done
|
||||
if [ -n "$value" ]; then
|
||||
echo -e "\t}"
|
||||
fi
|
||||
echo -e '}'
|
||||
echo ' "'$database'": {
|
||||
"DATABASE": "'$DB'",
|
||||
"DBUSER": "'$DBUSER'",
|
||||
"HOST": "'$HOST'",
|
||||
"TYPE": "'$TYPE'",
|
||||
"CHARSET": "'$CHARSET'",
|
||||
"U_DISK": "'$U_DISK'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell list for single database
|
||||
shell_list_db() {
|
||||
line=$(grep "DB='$database'" $conf)
|
||||
eval $line
|
||||
for field in $fields; do
|
||||
eval key="$field"
|
||||
echo "${field//$/}: $key "
|
||||
done
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "DATABASE: $DB"
|
||||
echo "DB USER: $DBUSER"
|
||||
echo "HOST: $HOST"
|
||||
echo "TYPE: $TYPE"
|
||||
echo "CHARSET: $CHARSET"
|
||||
echo "DISK: $U_DISK"
|
||||
echo "SUSPENDED: $SUSPENDED"
|
||||
echo "TIME: $TIME"
|
||||
echo "DATE: $DATE"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo -ne "$DB\t$DBUSER\t$HOST\t$TYPE\t$CHARSET\t$U_DISK\t"
|
||||
echo -e "$SUSPENDED\t$TIME\t$DATE"
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "DATABASE,DBUSER,HOST,TYPE,CHARSET,U_DISK,SUSPENDED,TIME,DATE"
|
||||
echo "$DB,$DBUSER,$HOST,$TYPE,$CHARSET,$U_DISK,$SUSPENDED,$TIME,$DATE"
|
||||
}
|
||||
|
||||
|
||||
|
@ -59,7 +65,7 @@ shell_list_db() {
|
|||
#----------------------------------------------------------#
|
||||
|
||||
check_args '2' "$#" 'USER DATABASE [FORMAT]'
|
||||
validate_format 'user' 'database'
|
||||
is_format_valid 'user' 'database'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
is_object_valid 'db' 'DB' "$database"
|
||||
|
||||
|
@ -68,17 +74,15 @@ is_object_valid 'db' 'DB' "$database"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Parsing database
|
||||
eval $(grep "DB='$database'" $USER_DATA/db.conf)
|
||||
|
||||
# Defining fileds to select
|
||||
conf=$USER_DATA/db.conf
|
||||
fields='$DB $DBUSER $HOST $TYPE $CHARSET $U_DISK $SUSPENDED $TIME $DATE'
|
||||
|
||||
# Listing database
|
||||
case $format in
|
||||
json) json_list_db ;;
|
||||
plain) shell_list_db ;;
|
||||
shell) shell_list_db | column -t ;;
|
||||
*) check_args '2' '0' 'USER DATABASE [FORMAT]'
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#!/bin/bash
|
||||
# info: list database server
|
||||
# info: list database host
|
||||
# options: TYPE HOST [FORMAT]
|
||||
#
|
||||
# The function for obtaining database server parameters.
|
||||
# The function for obtaining database host parameters.
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
|
@ -17,40 +17,58 @@ format=${3-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_dbhost() {
|
||||
i=1
|
||||
fields_count=$(echo "$fields" | wc -w)
|
||||
line=$(grep "HOST='$host'" $conf)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '{'
|
||||
eval $line
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ "$i" -eq 1 ]; then
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ "$fields_count" -eq "$i" ]; then
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
|
||||
fi
|
||||
fi
|
||||
(( ++i))
|
||||
done
|
||||
if [ -n "$value" ]; then
|
||||
echo -e "\t}"
|
||||
fi
|
||||
echo -e "}"
|
||||
echo ' "'$HOST'": {
|
||||
"HOST": "'$HOST'",
|
||||
"TYPE": "'$type'",
|
||||
"CHARSETS": "'$CHARSETS'",
|
||||
"MAX_DB": "'$MAX_DB'",
|
||||
"U_SYS_USERS": "'$U_SYS_USERS'",
|
||||
"U_DB_BASES": "'$U_DB_BASES'",
|
||||
"TPL": "'$TPL'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_dbhost() {
|
||||
line=$(grep "HOST='$host'" $conf)
|
||||
eval $line
|
||||
for field in $fields; do
|
||||
eval key="$field"
|
||||
echo "${field//$/}: $key"
|
||||
done
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "HOST: $HOST"
|
||||
echo "TYPE: $type"
|
||||
echo "CHARSETS: $CHARSETS"
|
||||
echo "MAX_DB: $MAX_DB"
|
||||
echo "U_DB_BASES: $U_DB_BASES"
|
||||
echo "U_SYS_USERS: $U_SYS_USERS"
|
||||
echo "TPL: $TPL"
|
||||
echo "SUSPENDED: $SUSPENDED"
|
||||
echo "TIME: $TIME"
|
||||
echo "DATE: $DATE"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo -ne "$HOST\t$type\t$CHARSETS\t$MAX_DB\t$U_SYS_USERS\t"
|
||||
echo -e "$U_DB_BASES\t$TPL\t$SUSPENDED\t$TIME\t$DATE"
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo -n "HOST,TYPE,CHARSETS,MAX_DB,U_SYS_USERS,"
|
||||
echo "U_DB_BASES,TPL,SUSPENDED,TIME,DATE'"
|
||||
echo -n "$HOST,$type,\"$CHARSETS\",$MAX_DB,\"$U_SYS_USERS\","
|
||||
echo "$U_DB_BASES,$TPL,$SUSPENDED,$TIME,$DATE"
|
||||
}
|
||||
|
||||
# Type format validator
|
||||
is_type_format_valid() {
|
||||
exclude="[!|#|$|^|&|(|)|+|=|{|}|:|@|<|>|?|/|\|\"|'|;|%|\`| ]|\."
|
||||
if [[ "$1" =~ $exclude ]]; then
|
||||
check_result $E_INVALID "invalid type extention format :: $1"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
@ -59,7 +77,7 @@ shell_list_dbhost() {
|
|||
#----------------------------------------------------------#
|
||||
|
||||
check_args '2' "$#" 'TYPE HOST [FORMAT]'
|
||||
validate_format 'host'
|
||||
is_type_format_valid "$type"
|
||||
is_object_valid "../../conf/$type" 'HOST' "$host"
|
||||
|
||||
|
||||
|
@ -67,17 +85,15 @@ is_object_valid "../../conf/$type" 'HOST' "$host"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining fileds to select
|
||||
conf=$VESTA/conf/$type.conf
|
||||
fields='$HOST $CHARSETS $MAX_DB $U_SYS_USERS $U_DB_BASES $TPL $SUSPENDED'
|
||||
fields="$fields \$TIME \$DATE"
|
||||
# Parsing hosts
|
||||
eval $(grep "HOST='$host'" $VESTA/conf/$type.conf)
|
||||
|
||||
# Listing database
|
||||
case $format in
|
||||
json) json_list_dbhost ;;
|
||||
plain) nohead=1; shell_list_dbhost ;;
|
||||
shell) shell_list_dbhost | column -t;;
|
||||
*) check_args '2' '0' 'TYPE HOST [FORMAT]'
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#!/bin/bash
|
||||
# info: list database servers
|
||||
# options: TYPE [FORMAT]
|
||||
# info: list database hosts
|
||||
# options: [FORMAT]
|
||||
#
|
||||
# The function for obtaining the list of all hosts of the same databases' type.
|
||||
# The function for obtaining the list of all configured database hosts.
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
|
@ -10,37 +10,122 @@
|
|||
#----------------------------------------------------------#
|
||||
|
||||
# Argument definition
|
||||
type=${1-mysql}
|
||||
format=${2-shell}
|
||||
format=${1-shell}
|
||||
|
||||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
source $VESTA/conf/vesta.conf
|
||||
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=0
|
||||
for type in $(echo $DB_SYSTEM |sed -e 's/,/\n/'); do
|
||||
if [ -e "$VESTA/conf/$type.conf" ]; then
|
||||
db_hosts=$(grep HOST $VESTA/conf/$type.conf |wc -l)
|
||||
objects=$((objects + db_hosts))
|
||||
fi
|
||||
done
|
||||
|
||||
echo "{"
|
||||
for type in $(echo $DB_SYSTEM |sed -e 's/,/\n/'); do
|
||||
if [ -e "$VESTA/conf/$type.conf" ]; then
|
||||
for str in $(cat $VESTA/conf/$type.conf); do
|
||||
eval $str
|
||||
echo -n ' "'$HOST'": {
|
||||
"HOST": "'$HOST'",
|
||||
"TYPE": "'$type'",
|
||||
"CHARSETS": "'$CHARSETS'",
|
||||
"MAX_DB": "'$MAX_DB'",
|
||||
"U_SYS_USERS": "'$U_SYS_USERS'",
|
||||
"U_DB_BASES": "'$U_DB_BASES'",
|
||||
"TPL": "'$TPL'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
((i++))
|
||||
done
|
||||
fi
|
||||
done
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
IFS=$'\n'
|
||||
echo "HOST TYPE MAX_DB DB_USED SPND TIME DATE"
|
||||
echo "---- ---- ------ ------- ---- ---- ----"
|
||||
for type in $(echo $DB_SYSTEM |sed -e 's/,/\n/'); do
|
||||
if [ -e "$VESTA/conf/$type.conf" ]; then
|
||||
for str in $(cat $VESTA/conf/$type.conf); do
|
||||
eval $str
|
||||
echo "$HOST $type $MAX_DB $U_DB_BASES $SUSPENDED $TIME $DATE"
|
||||
done
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
IFS=$'\n'
|
||||
for type in $(echo $DB_SYSTEM |sed -e 's/,/\n/'); do
|
||||
if [ -e "$VESTA/conf/$type.conf" ]; then
|
||||
for str in $(cat $VESTA/conf/$type.conf); do
|
||||
eval $str
|
||||
echo -ne "$HOST\t$type\t$CHARSETS\t$MAX_DB\t$U_SYS_USERS\t"
|
||||
echo -e "$U_DB_BASES\t$TPL\t$SUSPENDED\t$TIME\t$DATE"
|
||||
done
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
IFS=$'\n'
|
||||
echo -n "HOST,TYPE,CHARSETS,MAX_DB,U_SYS_USERS,"
|
||||
echo "U_DB_BASES,TPL,SUSPENDED,TIME,DATE"
|
||||
for type in $(echo $DB_SYSTEM |sed -e 's/,/\n/'); do
|
||||
if [ -e "$VESTA/conf/$type.conf" ]; then
|
||||
for str in $(cat $VESTA/conf/$type.conf); do
|
||||
eval $str
|
||||
echo -n "$HOST,$type,\"$CHARSETS\",$MAX_DB,\"$U_SYS_USERS\","
|
||||
echo "$U_DB_BASES,$TPL,$SUSPENDED,$TIME,$DATE"
|
||||
done
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Type format validator
|
||||
is_type_format_valid() {
|
||||
exclude="[!|#|$|^|&|(|)|+|=|{|}|:|@|<|>|?|/|\|\"|'|;|%|\`| ]|\."
|
||||
if [[ "$1" =~ $exclude ]]; then
|
||||
check_result $E_INVALID "invalid type extention format :: $1"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Checking args
|
||||
#check_args '1' "$#" 'TYPE [FORMAT]'
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining fileds to select
|
||||
conf=$VESTA/conf/$type.conf
|
||||
fields='$HOST $CHARSETS $MAX_DB $U_SYS_USERS $U_DB_BASES $TPL $SUSPENDED'
|
||||
fields="$fields \$TIME \$DATE"
|
||||
|
||||
# Listing database
|
||||
case $format in
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) nohead=1; shell_list;;
|
||||
shell) fields='$HOST $MAX_DB $U_DB_BASES $SUSPENDED $DATE';
|
||||
shell_list | column -t ;;
|
||||
*) check_args '2' '0' 'TYPE [FORMAT]'
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -16,31 +16,40 @@ format=${1-shell}
|
|||
source $VESTA/func/main.sh
|
||||
source $VESTA/conf/vesta.conf
|
||||
|
||||
# Json function
|
||||
json_list_dbtypes() {
|
||||
types=$(echo "${DB_SYSTEM//,/ }")
|
||||
t_counter=$(echo "$types" | wc -w)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
objects=$(echo "${DB_SYSTEM//,/ }" |wc -w)
|
||||
i=1
|
||||
echo '['
|
||||
for type in $types; do
|
||||
if [ "$i" -lt "$t_counter" ]; then
|
||||
echo -e "\t\"$type\","
|
||||
for type in ${DB_SYSTEM//,/ }; do
|
||||
echo -n ' "'$type'"'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo -e "\t\"$type\""
|
||||
echo
|
||||
fi
|
||||
(( ++i))
|
||||
((i++))
|
||||
done
|
||||
echo "]"
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_dbtypes() {
|
||||
types=$(echo "${DB_SYSTEM//,/ }")
|
||||
if [ -z "$nohead" ]; then
|
||||
echo "TYPES"
|
||||
echo "----------"
|
||||
fi
|
||||
for type in $types; do
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo -e "TYPE\n----"
|
||||
echo "$DB_SYSTEM" |sed -e "s/,/\n/"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
for type in ${DB_SYSTEM//,/ }; do
|
||||
echo "$type"
|
||||
done
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "TYPE"
|
||||
for type in ${DB_SYSTEM//,/ }; do
|
||||
echo "$type"
|
||||
done
|
||||
}
|
||||
|
@ -50,12 +59,12 @@ shell_list_dbtypes() {
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
json) json_list_dbtypes ;;
|
||||
plain) nohead=1; shell_list_dbtypes ;;
|
||||
shell) shell_list_dbtypes ;;
|
||||
*) check_args '1' '0' '[FORMAT]' ;;
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -16,13 +16,73 @@ format=${2-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=$(grep "DB=" $USER_DATA/db.conf |wc -l)
|
||||
echo "{"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n ' "'$DB'": {
|
||||
"DATABASE": "'$DB'",
|
||||
"DBUSER": "'$DBUSER'",
|
||||
"HOST": "'$HOST'",
|
||||
"TYPE": "'$TYPE'",
|
||||
"CHARSET": "'$CHARSET'",
|
||||
"U_DISK": "'$U_DISK'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
((i++))
|
||||
done < <(cat $USER_DATA/db.conf)
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
IFS=$'\n'
|
||||
echo "DATABASE USER HOST TYPE DISK SPND DATE"
|
||||
echo "-------- ---- ---- ---- ---- ---- ----"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo "$DB $DBUSER $HOST $TYPE $U_DISK $SUSPENDED $DATE"
|
||||
done < <(cat $USER_DATA/db.conf)
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
IFS=$'\n'
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -ne "$DB\t$DBUSER\t$HOST\t$TYPE\t$CHARSET\t$U_DISK\t"
|
||||
echo -e "$SUSPENDED\t$TIME\t$DATE"
|
||||
done < <(cat $USER_DATA/db.conf)
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
IFS=$'\n'
|
||||
echo "DATABASE,DBUSER,HOST,TYPE,CHARSET,U_DISK,SUSPENDED,TIME,DATE"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo "$DB,$DBUSER,$HOST,$TYPE,$CHARSET,$U_DISK,$SUSPENDED,$TIME,$DATE"
|
||||
done < <(cat $USER_DATA/db.conf)
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
check_args '1' "$#" 'USER [FORMAT]'
|
||||
validate_format 'user'
|
||||
is_format_valid 'user'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
|
||||
|
||||
|
@ -30,17 +90,12 @@ is_object_valid 'user' 'USER' "$user"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining fileds to select
|
||||
conf=$USER_DATA/db.conf
|
||||
fields='$DB $DBUSER $HOST $TYPE $CHARSET $U_DISK $SUSPENDED $TIME $DATE'
|
||||
|
||||
# Listing databases
|
||||
case $format in
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) nohead=1; shell_list ;;
|
||||
shell) fields='$DB $DBUSER $HOST $TYPE $U_DISK $DATE';
|
||||
shell_list | column -t ;;
|
||||
*) check_args '1' '0' 'USER [FORMAT]'
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
# info: list dns domain
|
||||
# options: USER DOMAIN [FORMAT]
|
||||
#
|
||||
# The function of obtaining the list of domain parameters. This call, just as
|
||||
# all v_list_* calls, supports 3 formats - json, shell and plain.
|
||||
# The function of obtaining the list of dns domain parameters.
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
|
@ -18,57 +17,52 @@ format=${3-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_domain() {
|
||||
i=1
|
||||
fileds_count=$(echo "$fields" | wc -w)
|
||||
line=$(grep "DOMAIN='$domain'" $conf)
|
||||
|
||||
# Print top bracket
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '{'
|
||||
|
||||
# Assing key=value
|
||||
eval $line
|
||||
|
||||
# Starting output loop
|
||||
for field in $fields; do
|
||||
# Parsing key=value
|
||||
eval value=$field
|
||||
|
||||
# Checking first field
|
||||
if [ "$i" -eq 1 ]; then
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ "$fileds_count" -eq "$i" ]; then
|
||||
echo -e "\t\t\"${field//$/}\": \"$value\""
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"$value\","
|
||||
fi
|
||||
fi
|
||||
# Updating iterator
|
||||
(( ++i))
|
||||
done
|
||||
|
||||
# If there was any output
|
||||
if [ -n "$value" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
# Printing bottom json bracket
|
||||
echo -e "}"
|
||||
echo ' "'$DOMAIN'": {
|
||||
"IP": "'$IP'",
|
||||
"TPL": "'$TPL'",
|
||||
"TTL": "'$TTL'",
|
||||
"EXP": "'$EXP'",
|
||||
"SOA": "'$SOA'",
|
||||
"SERIAL": "'$SERIAL'",
|
||||
"SRC": "'$SRC'",
|
||||
"RECORDS": "'$RECORDS'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_domain() {
|
||||
line=$(grep "DOMAIN='$domain'" $conf)
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "DOMAIN: $DOMAIN"
|
||||
echo "IP: $IP"
|
||||
echo "TEMPLATE: $TPL"
|
||||
echo "TTL: $TTL"
|
||||
echo "EXP: $EXP"
|
||||
echo "SOA: $SOA"
|
||||
echo "SERIAL: $SERIAL"
|
||||
echo "RECORDS: $RECORDS"
|
||||
echo "SUSPENDED: $SUSPENDED"
|
||||
echo "TIME: $TIME"
|
||||
echo "DATE: $DATE"
|
||||
}
|
||||
|
||||
# Parsing key=value
|
||||
eval $line
|
||||
|
||||
# Print result line
|
||||
for field in $fields; do
|
||||
eval key="$field"
|
||||
echo "${field//$/}: $key "
|
||||
done
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo -ne "$DOMAIN\t$IP\t$TPL\t$TTL\t$EXP\t$SOA\t$SERIAL\t$RECORDS\t"
|
||||
echo -e "$SUSPENDED\t$TIME\t$DATE"
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "DOMAIN,IP,TPL,TTL,EXP,SOA,SERIAL,RECORDS,SUSPENDED,TIME,DATE"
|
||||
echo -n "$DOMAIN,$IP,$TPL,$TTL,$EXP,$SOA,$SERIAL,$RECORDS,$SUSPENDED,"
|
||||
echo "$TIME,$DATE"
|
||||
}
|
||||
|
||||
|
||||
|
@ -85,17 +79,15 @@ is_object_valid 'dns' 'DOMAIN' "$domain"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining config and fields to select
|
||||
conf=$USER_DATA/dns.conf
|
||||
fields='$DOMAIN $IP $TPL $TTL $EXP $SOA $SERIAL $SRC $RECORDS
|
||||
$SUSPENDED $TIME $DATE'
|
||||
# Parsing domain
|
||||
eval $(grep "DOMAIN='$domain'" $USER_DATA/dns.conf)
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
json) json_list_domain ;;
|
||||
plain) nohead=1; shell_list_domain ;;
|
||||
shell) shell_list_domain |column -t ;;
|
||||
*) check_args '2' '0' 'USER DOMAIN [FORMAT]'
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -16,13 +16,78 @@ format=${2-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=$(grep DOMAIN $USER_DATA/dns.conf |wc -l)
|
||||
echo "{"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n ' "'$DOMAIN'": {
|
||||
"IP": "'$IP'",
|
||||
"TPL": "'$TPL'",
|
||||
"TTL": "'$TTL'",
|
||||
"EXP": "'$EXP'",
|
||||
"SOA": "'$SOA'",
|
||||
"SERIAL": "'$SERIAL'",
|
||||
"SRC": "'$SRC'",
|
||||
"RECORDS": "'$RECORDS'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
((i++))
|
||||
done < <(cat $USER_DATA/dns.conf)
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
IFS=$'\n'
|
||||
echo "DOMAIN IP TPL TTL REC SPND DATE"
|
||||
echo "------ -- --- --- --- ---- ----"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo "$DOMAIN $IP $TPL $TTL $RECORDS $SUSPENDED $DATE"
|
||||
done < <(cat $USER_DATA/dns.conf)
|
||||
}
|
||||
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
IFS=$'\n'
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -ne "$DOMAIN\t$IP\t$TPL\t$TTL\t$EXP\t$SOA\t$SERIAL\t"
|
||||
echo -e "$SRC\t$RECORDS\t$SUSPENDED\t$TIME\t$DATE"
|
||||
done < <(cat $USER_DATA/dns.conf)
|
||||
}
|
||||
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
IFS=$'\n'
|
||||
echo "DOMAIN,IP,TPL,TTL,EXP,SOA,SERIAL,SRC,RECORDS,SUSPENDED,TIME,DATE"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n "$DOMAIN,$IP,$TPL,$TTL,$EXP,$SOA,$SERIAL,"
|
||||
echo "$SRC,$RECORDS,$SUSPENDED,$TIME,$DATE"
|
||||
done < <(cat $USER_DATA/dns.conf)
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
check_args '1' "$#" 'USER [FORMAT]'
|
||||
validate_format 'user'
|
||||
is_format_valid 'user'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
|
||||
|
||||
|
@ -30,18 +95,12 @@ is_object_valid 'user' 'USER' "$user"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining config and fields
|
||||
conf=$USER_DATA/dns.conf
|
||||
fields='$DOMAIN $IP $TPL $TTL $EXP $SOA $SERIAL $SRC $RECORDS
|
||||
$SUSPENDED $TIME $DATE'
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) nohead=1; shell_list ;;
|
||||
shell) fields='$DOMAIN $IP $TPL $EXP $DATE';
|
||||
shell_list| column -t ;;
|
||||
*) check_args '1' '0' 'USER [FORMAT]';;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -17,56 +17,67 @@ format=${3-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json func
|
||||
json_list_dns() {
|
||||
echo '{'
|
||||
fileds_count=$(echo $fields| wc -w )
|
||||
while read line; do
|
||||
IFS=$'\n'
|
||||
eval $line
|
||||
if [ -n "$data" ]; then
|
||||
echo -e ' },'
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=$(grep ID $USER_DATA/dns/$domain.conf |wc -l)
|
||||
echo "{"
|
||||
while read str; do
|
||||
eval $str
|
||||
VALUE=$(echo "$VALUE" |sed -e 's/"/\\"/g' -e "s/%quote%/'/g")
|
||||
echo -n ' "'$ID'": {
|
||||
"RECORD": "'$RECORD'",
|
||||
"TYPE": "'$TYPE'",
|
||||
"PRIORITY": "'$PRIORITY'",
|
||||
"VALUE": "'$VALUE'",
|
||||
"ID": "'$ID'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
i=1
|
||||
IFS=' '
|
||||
for field in $fields; do
|
||||
eval value=\"$field\"
|
||||
value=$(echo "$value" | sed -e 's/"/\\"/g' -e "s/%quote%/'/g")
|
||||
if [ $i -eq 1 ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ $i -lt $fileds_count ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
|
||||
data=1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
done < $conf
|
||||
if [ -n "$data" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
echo -e '}'
|
||||
((i++))
|
||||
done < <(cat $USER_DATA/dns/$domain.conf)
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_dns() {
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
IFS=$'\n'
|
||||
echo "ID^RECORD^TYPE^VALUE^DATE"
|
||||
echo "--^------^----^-----^----"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo "$ID^$RECORD^$TYPE^${VALUE:0:30}^$DATE"
|
||||
done < <(cat $USER_DATA/dns/$domain.conf)
|
||||
}
|
||||
|
||||
if [ -z "$nohead" ] ; then
|
||||
echo "${fields//$/}"
|
||||
for a in $fields; do
|
||||
echo -e "------ \c"
|
||||
done
|
||||
echo
|
||||
fi
|
||||
while read line ; do
|
||||
IFS=$'\n'
|
||||
eval $line
|
||||
eval echo "$fields" | sed "s/%quote%/'/g"
|
||||
done < $conf
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
IFS=$'\n'
|
||||
while read str; do
|
||||
eval $str
|
||||
VALUE=$(echo "$VALUE" |sed -e "s/%quote%/\\'/g")
|
||||
echo -ne "$ID\t$RECORD\t$TYPE\t$PRIORITY\t$VALUE\t"
|
||||
echo -e "$SUSPENDED\t$TIME\t$DATE"
|
||||
done < <(cat $USER_DATA/dns/$domain.conf)
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
IFS=$'\n'
|
||||
echo "ID,RECORD,TYPE,PRIORITY,VALUE,SUSPENDED,TIME,DATE"
|
||||
while read str; do
|
||||
eval $str
|
||||
VALUE=$(echo "$VALUE" |sed -e "s/%quote%/\\'/g")
|
||||
echo -n "$ID,$RECORD,$TYPE,$PRIORITY,\"$VALUE\","
|
||||
echo "$SUSPENDED,$TIME,$DATE"
|
||||
done < <(cat $USER_DATA/dns/$domain.conf)
|
||||
}
|
||||
|
||||
|
||||
|
@ -75,7 +86,7 @@ shell_list_dns() {
|
|||
#----------------------------------------------------------#
|
||||
|
||||
check_args '2' "$#" 'USER DOMAIN [FORMAT]'
|
||||
validate_format 'user' 'domain'
|
||||
is_format_valid 'user' 'domain'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
is_object_valid 'dns' 'DOMAIN' "$domain"
|
||||
|
||||
|
@ -84,17 +95,12 @@ is_object_valid 'dns' 'DOMAIN' "$domain"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining config and fields
|
||||
conf=$USER_DATA/dns/$domain.conf
|
||||
fields='$ID $RECORD $TYPE $PRIORITY $VALUE $ID $SUSPENDED $TIME $DATE'
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
json) json_list_dns ;;
|
||||
plain) nohead=1; shell_list_dns ;;
|
||||
shell) fields='$ID $RECORD $TYPE $VALUE';
|
||||
shell_list_dns | column -t ;;
|
||||
*) check_args '2' '0' 'USER DOMAIN [FORMAT]'
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t -s '^';;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -17,55 +17,62 @@ format=${2-shell}
|
|||
source $VESTA/func/main.sh
|
||||
source $VESTA/func/domain.sh
|
||||
|
||||
# Json func
|
||||
json_list_dns() {
|
||||
echo '{'
|
||||
fileds_count=$(echo $fields| wc -w )
|
||||
while read line; do
|
||||
IFS=$'\n'
|
||||
eval $line
|
||||
if [ -n "$data" ]; then
|
||||
echo -e ' },'
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=$(grep ID $DNSTPL/$template.tpl |wc -l)
|
||||
echo "{"
|
||||
while read str; do
|
||||
eval $str
|
||||
VALUE=$(echo "$VALUE" |sed -e 's/"/\\"/g' -e "s/%quote%/'/g")
|
||||
echo -n ' "'$ID'": {
|
||||
"RECORD": "'$RECORD'",
|
||||
"TYPE": "'$TYPE'",
|
||||
"PRIORITY": "'$PRIORITY'",
|
||||
"VALUE": "'$VALUE'",
|
||||
"ID": "'$ID'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
i=1
|
||||
IFS=' '
|
||||
for field in $fields; do
|
||||
eval value=\"$field\"
|
||||
value=$(echo "$value" | sed -e 's/"/\\"/g' -e "s/%quote%/'/g")
|
||||
if [ $i -eq 1 ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ $i -lt $fileds_count ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
|
||||
data=1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
done < $conf
|
||||
if [ -n "$data" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
echo -e '}'
|
||||
((i++))
|
||||
done < <(cat $DNSTPL/$template.tpl)
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_dns() {
|
||||
if [ -z "$nohead" ] ; then
|
||||
echo "${fields//$/}"
|
||||
for a in $fields; do
|
||||
echo -e "------ \c"
|
||||
done
|
||||
echo
|
||||
fi
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
IFS=$'\n'
|
||||
echo "ID^RECORD^TYPE^VALUE"
|
||||
echo "--^------^----^-----"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo "$ID^$RECORD^$TYPE^$VALUE"
|
||||
done < <(cat $DNSTPL/$template.tpl)
|
||||
}
|
||||
|
||||
while read line ; do
|
||||
eval $line
|
||||
eval echo "$fields" | sed "s/%quote%/'/g"
|
||||
done < $conf
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
IFS=$'\n'
|
||||
while read str; do
|
||||
eval $str
|
||||
VALUE=$(echo "$VALUE" |sed -e "s/%quote%/\\'/g")
|
||||
echo -e "$ID\t$RECORD\t$TYPE\t$PRIORITY\t$VALUE"
|
||||
done < <(cat $DNSTPL/$template.tpl)
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
IFS=$'\n'
|
||||
echo "ID,RECORD,TYPE,PRIORITY,VALUE"
|
||||
while read str; do
|
||||
eval $str
|
||||
VALUE=$(echo "$VALUE" |sed -e "s/%quote%/\\'/g")
|
||||
echo "$ID,$RECORD,$TYPE,$PRIORITY,\"$VALUE\""
|
||||
done < <(cat $DNSTPL/$template.tpl)
|
||||
}
|
||||
|
||||
|
||||
|
@ -74,7 +81,7 @@ shell_list_dns() {
|
|||
#----------------------------------------------------------#
|
||||
|
||||
check_args '1' "$#" 'TEMPLATE [FORMAT]'
|
||||
validate_format 'template'
|
||||
is_format_valid 'template'
|
||||
is_dns_template_valid
|
||||
|
||||
|
||||
|
@ -82,16 +89,12 @@ is_dns_template_valid
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining config and fields
|
||||
conf=$DNSTPL/$template.tpl
|
||||
fields='$RECORD $TYPE $PRIORITY $VALUE'
|
||||
|
||||
# Listing templates
|
||||
case $format in
|
||||
json) json_list_dns ;;
|
||||
plain) nohead=1; shell_list_dns ;;
|
||||
shell) shell_list_dns | column -t ;;
|
||||
*) check_args '1' '0' 'TEMPLATE [FORMAT]';;
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t -s '^';;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -15,30 +15,41 @@ format=${1-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_dnstpl() {
|
||||
templates=$(ls -t $DNSTPL |grep '\.tpl' |cut -f 1 -d '.')
|
||||
t_counter=$(echo "$templates" | wc -w)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
objects=$(echo "$templates" |wc -l)
|
||||
i=1
|
||||
echo '['
|
||||
echo "["
|
||||
for template in $templates; do
|
||||
if [ "$i" -lt "$t_counter" ]; then
|
||||
echo -e "\t\"$template\","
|
||||
echo -n ' "'$template'"'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo -e "\t\"$template\""
|
||||
echo
|
||||
fi
|
||||
(( ++i))
|
||||
((i++))
|
||||
done
|
||||
echo "]"
|
||||
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_dnstpl() {
|
||||
templates=$(ls -t $DNSTPL |grep '\.tpl' |cut -f 1 -d '.')
|
||||
if [ -z "$nohead" ]; then
|
||||
echo "Templates"
|
||||
echo "----------"
|
||||
fi
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "TEMPLATE"
|
||||
echo "--------"
|
||||
ls -t $DNSTPL |grep '\.tpl' |cut -f 1 -d '.'
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
for template in $templates; do
|
||||
echo "$template"
|
||||
done
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "TEMPLATE"
|
||||
for template in $templates; do
|
||||
echo "$template"
|
||||
done
|
||||
|
@ -49,12 +60,15 @@ shell_list_dnstpl() {
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
json) json_list_dnstpl;;
|
||||
plain) nohead=1; shell_list_dnstpl ;;
|
||||
shell) shell_list_dnstpl ;;
|
||||
*) check_args '1' '0' '[FORMAT] [LIMIT] [OFFSET]';;
|
||||
# Defining template list
|
||||
templates=$(ls -t $DNSTPL |grep '\.tpl' |cut -f 1 -d '.')
|
||||
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -15,25 +15,77 @@ format=${1-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=$(grep RULE $VESTA/data/firewall/rules.conf |wc -l)
|
||||
echo "{"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n ' "'$RULE'": {
|
||||
"ACTION": "'$ACTION'",
|
||||
"PROTOCOL": "'$PROTOCOL'",
|
||||
"PORT": "'$PORT'",
|
||||
"IP": "'$IP'",
|
||||
"COMMENT": "'$COMMENT'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
((i++))
|
||||
done < <(cat $VESTA/data/firewall/rules.conf)
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
IFS=$'\n'
|
||||
echo "RULE^ACTION^PROTO^PORT^IP^SPND^DATE"
|
||||
echo "----^------^-----^----^--^----^----"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo "$RULE^$ACTION^$PROTOCOL^$PORT^$IP^$SUSPENDED^$DATE"
|
||||
done < <(cat $VESTA/data/firewall/rules.conf)
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
IFS=$'\n'
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -ne "$RULE\t$ACTION\t$PROTOCOL\t$PORT\t$IP\t$COMMENT\t"
|
||||
echo -e "$SUSPENDED\t$TIME\t$DATE"
|
||||
done < <(cat $VESTA/data/firewall/rules.conf)
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
IFS=$'\n'
|
||||
echo "RULE,ACTION,PROTOCOL,PORT,IP,COMMENT,SUSPENDED,TIME,DATE"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n "$RULE,$ACTION,$PROTOCOL,$PORT,$IP,\"$COMMENT\","
|
||||
echo "$SUSPENDED,$TIME,$DATE"
|
||||
done < <(cat $VESTA/data/firewall/rules.conf)
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining config
|
||||
conf=$VESTA/data/firewall/rules.conf
|
||||
|
||||
# Defining fileds to select
|
||||
fields="\$RULE \$ACTION \$PROTOCOL \$PORT \$IP \$COMMENT"
|
||||
fields="$fields \$RULE \$SUSPENDED \$TIME \$DATE"
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) nohead=1; shell_list ;;
|
||||
shell) fields="\$ACTION \$PROTOCOL \$PORT \$IP";
|
||||
shell_list | column -t ;;
|
||||
*) check_args '1' '0' 'USER [FORMAT]'
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t -s '^' ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -15,24 +15,71 @@ format=${1-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=$(grep IP $VESTA/data/firewall/banlist.conf |wc -l)
|
||||
echo "{"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n ' "'$IP'": {
|
||||
"IP": "'$IP'",
|
||||
"CHAIN": "'$COMMENT'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
((i++))
|
||||
done < <(cat $VESTA/data/firewall/banlist.conf)
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
IFS=$'\n'
|
||||
echo "IP CHAIN TIME DATE"
|
||||
echo "-- ----- ---- ----"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo "$IP $CHAIN $TIME $DATE"
|
||||
done < <(cat $VESTA/data/firewall/banlist.conf)
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
IFS=$'\n'
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -e "$IP\t$CHAIN\t$TIME\t$DATE"
|
||||
done < <(cat $VESTA/data/firewall/banlist.conf)
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
IFS=$'\n'
|
||||
echo "IP,CHAIN,TIME,DATE"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo "$IP,$CHAIN,$TIME,$DATE"
|
||||
done < <(cat $VESTA/data/firewall/banlist.conf)
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining config
|
||||
conf=$VESTA/data/firewall/banlist.conf
|
||||
|
||||
# Defining fileds to select
|
||||
fields="\$IP:\$CHAIN \$TIME \$DATE"
|
||||
|
||||
# Listing domains
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) nohead=1; shell_list ;;
|
||||
shell) fields='$IP $CHAIN $TIME $DATE';
|
||||
shell_list | column -t ;;
|
||||
*) check_args '1' '0' 'USER [FORMAT]'
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -16,43 +16,43 @@ format=${2-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_fw_rule() {
|
||||
i=1
|
||||
fileds_count=$(echo "$fields" | wc -w)
|
||||
line=$(grep "RULE='$rule'" $conf)
|
||||
json_list() {
|
||||
echo '{'
|
||||
eval $line
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ "$i" -eq 1 ]; then
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ "$fileds_count" -eq "$i" ]; then
|
||||
echo -e "\t\t\"${field//$/}\": \"$value\""
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"$value\","
|
||||
fi
|
||||
fi
|
||||
(( ++i))
|
||||
done
|
||||
if [ -n "$value" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
echo -e "}"
|
||||
echo ' "'$RULE'": {
|
||||
"ACTION": "'$ACTION'",
|
||||
"PROTOCOL": "'$PROTOCOL'",
|
||||
"PORT": "'$PORT'",
|
||||
"IP": "'$IP'",
|
||||
"COMMENT": "'$COMMENT'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_fw_rule() {
|
||||
line=$(grep "RULE='$rule'" $conf)
|
||||
eval $line
|
||||
for field in $fields; do
|
||||
eval key="$field"
|
||||
if [ -z "$key" ]; then
|
||||
key=NULL
|
||||
fi
|
||||
echo "${field//$/}: $key "
|
||||
done
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "ACTION: $ACTION"
|
||||
echo "PROTOCOL: $PROTOCOL"
|
||||
echo "PORT: $PORT"
|
||||
echo "IP: $IP"
|
||||
echo "COMMENT: $COMMENT"
|
||||
echo "SUSPENDED: $SUSPENDED"
|
||||
echo "TIME: $TIME"
|
||||
echo "DATE: $DATE"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo -ne "$RULE\t$ACTION\t$PROTOCOL\t$PORT\t$IP\t$COMMENT\t"
|
||||
echo -e "$SUSPENDED\t$TIME\t$DATE"
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "RULE,ACTION,PROTOCOL,PORT,IP,COMMENT,SUSPENDED,TIME,DATE"
|
||||
echo "$RULE,$ACTION,$PROTOCOL,$PORT,$IP,$COMMENT,$SUSPENDED,$TIME,$DATE"
|
||||
}
|
||||
|
||||
|
||||
|
@ -61,6 +61,7 @@ shell_list_fw_rule() {
|
|||
#----------------------------------------------------------#
|
||||
|
||||
check_args '1' "$#" 'RULE [FORMAT]'
|
||||
is_number_format_valid "$rule" "rule id"
|
||||
is_object_valid '../../data/firewall/rules' 'RULE' "$rule"
|
||||
|
||||
|
||||
|
@ -68,17 +69,15 @@ is_object_valid '../../data/firewall/rules' 'RULE' "$rule"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining config and fields to select
|
||||
conf=$VESTA/data/firewall/rules.conf
|
||||
fields="\$RULE \$ACTION \$PROTOCOL \$PORT \$IP \$COMMENT"
|
||||
fields="$fields \$RULE \$SUSPENDED \$TIME \$DATE"
|
||||
# Parsing rules
|
||||
eval $(grep "RULE='$rule'" $VESTA/data/firewall/rules.conf)
|
||||
|
||||
# Listing fw rule
|
||||
case $format in
|
||||
json) json_list_fw_rule ;;
|
||||
plain) nohead=1; shell_list_fw_rule ;;
|
||||
shell) shell_list_fw_rule |column -t ;;
|
||||
*) check_args '2' '0' 'RULE [FORMAT]'
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -18,43 +18,49 @@ format=${4-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_account() {
|
||||
i=1
|
||||
fileds_count=$(echo "$fields" | wc -w)
|
||||
line=$(grep "ACCOUNT='$account'" $conf)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '{'
|
||||
eval $line
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ "$i" -eq 1 ]; then
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ "$fileds_count" -eq "$i" ]; then
|
||||
echo -e "\t\t\"${field//$/}\": \"$value\""
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"$value\","
|
||||
fi
|
||||
fi
|
||||
(( ++i))
|
||||
done
|
||||
if [ -n "$value" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
echo -e "}"
|
||||
echo ' "'$account'": {
|
||||
"ALIAS": "'$ALIAS'",
|
||||
"FWD": "'$FWD'",
|
||||
"FWD_ONLY": "'$FWD_ONLY'",
|
||||
"AUTOREPLY": "'$AUTOREPLY'",
|
||||
"QUOTA": "'$QUOTA'",
|
||||
"U_DISK": "'$U_DISK'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_account() {
|
||||
line=$(grep "ACCOUNT='$account'" $conf)
|
||||
eval $line
|
||||
for field in $fields; do
|
||||
eval key="$field"
|
||||
if [ -z "$key" ]; then
|
||||
key=NULL
|
||||
fi
|
||||
echo "${field//$/}: $key "
|
||||
done
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "ACCOUNT: $account"
|
||||
echo "ALIAS: $ALIAS"
|
||||
echo "FORWARD: $FWD"
|
||||
echo "FORWARD_ONLY: $FWD_ONLY"
|
||||
echo "AUTOREPLY: $AUTOREPLY"
|
||||
echo "QUOTA: $QUOTA"
|
||||
echo "DISK: $U_DISK"
|
||||
echo "SUSPENDED: $SUSPENDED"
|
||||
echo "TIME: $TIME"
|
||||
echo "DATE: $DATE"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo -ne "$account\t$ALIAS\t$FWD\t$FWD_ONLY\t$AUTOREPLY\t$QUOTA\t"
|
||||
echo -e "$U_DISK\t$SUSPENDED\t$TIME\t$DATE"
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo -n "ACCOUNT,ALIAS,FWD,FWD_ONLY,AUTOREPLY,QUOTA,U_DISK"
|
||||
echo "SUSPENDED,TIME,DATE"
|
||||
echo -n "$ACCOUNT,\"$ALIAS\",\"$FWD\",$FWD_ONLY,$AUTOREPLY,$QUOTA,"
|
||||
echo "$U_DISK,$SUSPENDED,$TIME,$DATE"
|
||||
}
|
||||
|
||||
|
||||
|
@ -63,6 +69,7 @@ shell_list_account() {
|
|||
#----------------------------------------------------------#
|
||||
|
||||
check_args '3' "$#" 'USER DOMAIN ACCOUNT [FORMAT]'
|
||||
is_format_valid 'user' 'domain' 'account'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
is_object_valid 'mail' 'DOMAIN' "$domain"
|
||||
is_object_valid "mail/$domain" 'ACCOUNT' "$account"
|
||||
|
@ -73,17 +80,15 @@ is_object_valid "mail/$domain" 'ACCOUNT' "$account"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining config and fields to select
|
||||
conf=$USER_DATA/mail/$domain.conf
|
||||
fields="\$ACCOUNT \$ALIAS \$FWD \$FWD_ONLY \$QUOTA \$AUTOREPLY \$U_DISK"
|
||||
fields="$fields \$SUSPENDED \$TIME \$DATE"
|
||||
# Parsing mail account
|
||||
eval $(grep "ACCOUNT='$account'" $USER_DATA/mail/$domain.conf)
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
json) json_list_account ;;
|
||||
plain) nohead=1; shell_list_account ;;
|
||||
shell) shell_list_account |column -t ;;
|
||||
*) check_args '2' '0' 'USER DOMAIN ACCOUNT [FORMAT]'
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -18,8 +18,8 @@ format=${4-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_msg() {
|
||||
# JSON list function
|
||||
json_list() {
|
||||
i='1' # iterator
|
||||
echo '{'
|
||||
echo -e "\t\"$account\": {"
|
||||
|
@ -27,11 +27,20 @@ json_list_msg() {
|
|||
echo -e "\t}\n}"
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_msg() {
|
||||
if [ ! -z "$msg" ]; then
|
||||
echo -e "$msg"
|
||||
fi
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "$msg"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo "$msg"
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "MSG"
|
||||
echo "$msg"
|
||||
}
|
||||
|
||||
|
||||
|
@ -39,7 +48,8 @@ shell_list_msg() {
|
|||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
check_args '2' "$#" 'USER DOMAIN [FORMAT]'
|
||||
check_args '3' "$#" 'USER DOMAIN ACCOUNT [FORMAT]'
|
||||
is_format_valid 'user' 'domain' 'account'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
is_object_valid 'mail' 'DOMAIN' "$domain"
|
||||
is_object_unsuspended 'mail' 'DOMAIN' "$domain"
|
||||
|
@ -56,12 +66,12 @@ if [ -e "$USER_DATA/mail/$account@$domain.msg" ]; then
|
|||
sed ':a;N;$!ba;s/\n/\\n/g' )
|
||||
fi
|
||||
|
||||
# Listing domains
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list_msg ;;
|
||||
plain) nohead=1; shell_list_msg ;;
|
||||
shell) shell_list_msg ;;
|
||||
*) check_args '1' '0' '[FORMAT]'
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -17,13 +17,90 @@ format=${3-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=$(grep ACCOUNT $USER_DATA/mail/$domain.conf |wc -l)
|
||||
echo "{"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n ' "'$ACCOUNT'": {
|
||||
"ALIAS": "'$ALIAS'",
|
||||
"FWD": "'$FWD'",
|
||||
"FWD_ONLY": "'$FWD_ONLY'",
|
||||
"AUTOREPLY": "'$AUTOREPLY'",
|
||||
"QUOTA": "'$QUOTA'",
|
||||
"U_DISK": "'$U_DISK'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
((i++))
|
||||
done < <(cat $USER_DATA/mail/$domain.conf)
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
IFS=$'\n'
|
||||
echo "ACCOUNT ALIAS FWD DISK DATE"
|
||||
echo "------- ----- --- ---- ----"
|
||||
while read str; do
|
||||
eval $str
|
||||
if [ -z "$ALIAS" ]; then
|
||||
ALIAS='no'
|
||||
else
|
||||
if [ "${#ALIAS}" -gt 12 ]; then
|
||||
ALIAS="${ALIAS:0:12}..."
|
||||
fi
|
||||
fi
|
||||
if [ -z "$FWD" ]; then
|
||||
FWD='no'
|
||||
else
|
||||
if [ "${#FWD}" -gt 20 ]; then
|
||||
FWD="${FWD:0:20}..."
|
||||
fi
|
||||
fi
|
||||
echo "$ACCOUNT $ALIAS $FWD $U_DISK $DATE"
|
||||
done < <(cat $USER_DATA/mail/$domain.conf)
|
||||
}
|
||||
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
IFS=$'\n'
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -ne "$ACCOUNT\t$ALIAS\t$FWD\t$FWD_ONLY\t$AUTOREPLY\t"
|
||||
echo -e "$QUOTA\t$U_DISK\t$SUSPENDED\t$TIME\t$DATE"
|
||||
done < <(cat $USER_DATA/mail/$domain.conf)
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
IFS=$'\n'
|
||||
echo -n "ACCOUNT,ALIAS,FWD,FWD_ONLY,AUTOREPLY,QUOTA,U_DISK,"
|
||||
echo "SUSPENDED,TIME,DATE"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n "$ACCOUNT,\"$ALIAS\",\"$FWD\",$FWD_ONLY,$AUTOREPLY,"
|
||||
echo "$QUOTA,$U_DISK,$SUSPENDED,$TIME,$DATE"
|
||||
done < <(cat $USER_DATA/mail/$domain.conf)
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
check_args '2' "$#" 'USER DOMAIN [FORMAT]'
|
||||
validate_format 'user' 'domain'
|
||||
is_format_valid 'user' 'domain'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
is_object_valid 'mail' 'DOMAIN' "$domain"
|
||||
|
||||
|
@ -32,18 +109,12 @@ is_object_valid 'mail' 'DOMAIN' "$domain"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining fileds to select
|
||||
conf=$USER_DATA/mail/$domain.conf
|
||||
fields="\$ACCOUNT \$ALIAS \$FWD \$FWD_ONLY \$QUOTA \$AUTOREPLY \$U_DISK"
|
||||
fields="$fields \$SUSPENDED \$TIME \$DATE"
|
||||
|
||||
# Listing domain accounts
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) nohead=1; shell_list ;;
|
||||
shell) fields='$ACCOUNT $AUTOREPLY $QUOTA $U_DISK $SUSPENDED $TIME $DATE';
|
||||
shell_list | column -t ;;
|
||||
*) check_args '1' '0' 'USER [FORMAT]'
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
#!/bin/bash
|
||||
# info: list web domain
|
||||
# info: list mail domain
|
||||
# options: USER DOMAIN [FORMAT]
|
||||
#
|
||||
# The function of obtaining the list of domain parameters. This call, just as
|
||||
# all v_list_* calls, supports 3 formats - json, shell and plain.
|
||||
# The function of obtaining the list of domain parameters.
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
|
@ -18,41 +17,50 @@ format=${3-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_domain() {
|
||||
i=1
|
||||
fileds_count=$(echo "$fields" | wc -w)
|
||||
line=$(grep "DOMAIN='$domain'" $conf)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
eval $(grep "DOMAIN='$domain'" $USER_DATA/mail.conf)
|
||||
echo '{'
|
||||
eval $line
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ "$i" -eq 1 ]; then
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ "$fileds_count" -eq "$i" ]; then
|
||||
echo -e "\t\t\"${field//$/}\": \"$value\""
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"$value\","
|
||||
fi
|
||||
fi
|
||||
(( ++i))
|
||||
done
|
||||
|
||||
if [ -n "$value" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
echo -e "}"
|
||||
echo ' "'$DOMAIN'": {
|
||||
"ANTIVIRUS": "'$ANTIVIRUS'",
|
||||
"ANTISPAM": "'$ANTISPAM'",
|
||||
"DKIM": "'$DKIM'",
|
||||
"CATCHALL": "'$CATCHALL'",
|
||||
"ACCOUNTS": "'$ACCOUNTS'",
|
||||
"U_DISKL": "'$U_DISK'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_domain() {
|
||||
line=$(grep "DOMAIN='$domain'" $conf)
|
||||
eval $line
|
||||
for field in $fields; do
|
||||
eval key="$field"
|
||||
echo "${field//$/}: $key "
|
||||
done
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "DOMAIN: $DOMAIN"
|
||||
echo "ANTIVIRUS: $ANTIVIRUS"
|
||||
echo "ANTISPAM: $ANTISPAM"
|
||||
echo "DKIM: $DKIM"
|
||||
echo "CATCHALL: $CATCHALL"
|
||||
echo "ACCOUNTS: $ACCOUNTS"
|
||||
echo "DISK: $U_DISK"
|
||||
echo "SUSPENDED: $SUSPENDED"
|
||||
echo "TIME: $TIME"
|
||||
echo "DATE: $DATE"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo -ne "$DOMAIN\t$ANTIVIRUS\t$ANTISPAM\t$DKIM\t$CATCHALL\t"
|
||||
echo -e "$ACCOUNTS\t$U_DISK\t$SUSPENDED\t$TIME\t$DATE"
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo -n "DOMAIN,ANTIVIRUS,ANTISPAM,DKIM,CATCHALL,ACCOUNTS,U_DISK,"
|
||||
echo "SUSPENDED,TIME,DATE"
|
||||
echo -n "$DOMAIN,$ANTIVIRUS,$ANTISPAM,$DKIM,$CATCHALL,$ACCOUNTS,$U_DISK"
|
||||
echo "$SUSPENDED,$TIME,$DATE"
|
||||
}
|
||||
|
||||
|
||||
|
@ -61,6 +69,7 @@ shell_list_domain() {
|
|||
#----------------------------------------------------------#
|
||||
|
||||
check_args '2' "$#" 'USER DOMAIN [FORMAT]'
|
||||
is_format_valid 'user' 'domain'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
is_object_valid 'mail' 'DOMAIN' "$domain"
|
||||
|
||||
|
@ -69,17 +78,15 @@ is_object_valid 'mail' 'DOMAIN' "$domain"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining fileds to select
|
||||
conf=$USER_DATA/mail.conf
|
||||
fields='$DOMAIN $ANTIVIRUS $ANTISPAM $DKIM $ACCOUNTS $U_DISK $CATCHALL
|
||||
$SUSPENDED $TIME $DATE'
|
||||
# Parsing mail domain
|
||||
eval $(grep "DOMAIN='$domain'" $USER_DATA/mail.conf)
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
json) json_list_domain ;;
|
||||
plain) nohead=1; shell_list_domain ;;
|
||||
shell) shell_list_domain |column -t ;;
|
||||
*) check_args '2' '0' 'USER DOMAIN [FORMAT]'
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -17,8 +17,8 @@ format=${3-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_ssl() {
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '{'
|
||||
echo -e "\t\"$domain\": {"
|
||||
echo " \"PEM\": \"$pem\","
|
||||
|
@ -26,14 +26,21 @@ json_list_ssl() {
|
|||
echo -e "\t}\n}"
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_ssl() {
|
||||
if [ ! -z "$pem" ]; then
|
||||
echo -e "$pem"
|
||||
fi
|
||||
if [ ! -z "$pub" ]; then
|
||||
echo -e "\n$pub"
|
||||
fi
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo -e "$pem"
|
||||
echo -e "\n$pub"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo "$pem\t$pub"
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "PEM,PUB"
|
||||
echo "\"$pem\",\"$pub\""
|
||||
}
|
||||
|
||||
|
||||
|
@ -42,6 +49,7 @@ shell_list_ssl() {
|
|||
#----------------------------------------------------------#
|
||||
|
||||
check_args '2' "$#" 'USER DOMAIN [FORMAT]'
|
||||
is_format_valid 'user' 'domain'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
is_object_valid 'mail' 'DOMAIN' "$domain"
|
||||
|
||||
|
@ -49,20 +57,22 @@ is_object_valid 'mail' 'DOMAIN' "$domain"
|
|||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Parsing domain keys
|
||||
if [ -e "$USER_DATA/mail/$domain.pem" ]; then
|
||||
pem=$(cat $USER_DATA/mail/$domain.pem | sed ':a;N;$!ba;s/\n/\\n/g')
|
||||
pem=$(cat $USER_DATA/mail/$domain.pem |sed ':a;N;$!ba;s/\n/\\n/g')
|
||||
fi
|
||||
|
||||
if [ -e "$USER_DATA/mail/$domain.pub" ]; then
|
||||
pub=$(cat $USER_DATA/mail/$domain.pub | sed ':a;N;$!ba;s/\n/\\n/g')
|
||||
pub=$(cat $USER_DATA/mail/$domain.pub |sed ':a;N;$!ba;s/\n/\\n/g')
|
||||
fi
|
||||
|
||||
# Listing domains
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list_ssl ;;
|
||||
plain) nohead=1; shell_list_ssl ;;
|
||||
shell) shell_list_ssl ;;
|
||||
*) check_args '1' '0' '[FORMAT]'
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -17,24 +17,38 @@ format=${3-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_dkim_dns() {
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '{'
|
||||
echo -e "\t\"_domainkey\": {"
|
||||
echo " \"TTL\": \"3600\","
|
||||
echo " \"TXT\": \"'t=y; o=~;'\""
|
||||
echo " \"TTL\": \"3600\","
|
||||
echo " \"TXT\": \"'t=y; o=~;'\""
|
||||
echo -e "\t},"
|
||||
echo -e "\n\t\"mail._domainkey\": {"
|
||||
echo " \"TTL\": \"3600\","
|
||||
echo " \"TXT\": \"'$pub'\""
|
||||
echo " \"TTL\": \"3600\","
|
||||
echo " \"TXT\": \"\\\"$pub\\\"\""
|
||||
echo -e "\t}\n}"
|
||||
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_dkim_dns() {
|
||||
echo "_domainkey 3600 IN TXT \"t=y; o=~;\""
|
||||
echo "mail._domainkey 3600 IN TXT \"k=rsa; p=$pub\""
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "RECORD TTL TYPE VALUE"
|
||||
echo "------ --- ---- -----"
|
||||
echo "_domainkey 3600 IN TXT \"t=y; o=~;\""
|
||||
echo "mail._domainkey 3600 IN TXT \"k=rsa; p=$pub\""
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo -e "_domainkey\t3600\tIN\tTXT\t\"t=y; o=~;\""
|
||||
echo -e "mail._domainkey\t3600\tIN\tTXT\t\"k=rsa; p=$pub\""
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "RECORD,TTL,IN,TYPE,VALUE"
|
||||
echo "_domainkey,3600,IN,TXT,\"\"t=y; o=~;\"\""
|
||||
echo "mail._domainkey,3600,IN,TXT,\"\"k=rsa; p=$pub\"\""
|
||||
}
|
||||
|
||||
|
||||
|
@ -51,19 +65,20 @@ is_object_valid 'mail' 'DOMAIN' "$domain"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Check pub key
|
||||
# Parsing domain keys
|
||||
if [ -e "$USER_DATA/mail/$domain.pub" ]; then
|
||||
pub=$(cat $USER_DATA/mail/$domain.pub | sed ':a;N;$!ba;s/\n/\\n/g')
|
||||
pub=$(cat $USER_DATA/mail/$domain.pub |grep -v "KEY-----")
|
||||
pub=$(echo "$pub" |sed ':a;N;$!ba;s/\n/\\n/g')
|
||||
else
|
||||
pub="DKIM-SUPPORT-IS-NOT-ACTIVATED"
|
||||
fi
|
||||
|
||||
# Listing domains
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list_dkim_dns ;;
|
||||
plain) shell_list_dkim_dns ;;
|
||||
shell) shell_list_dkim_dns ;;
|
||||
*) check_args '1' '0' '[FORMAT]'
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t -s '^';;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -16,13 +16,77 @@ format=${2-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=$(grep DOMAIN $USER_DATA/mail.conf |wc -l)
|
||||
echo "{"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n ' "'$DOMAIN'": {
|
||||
"ANTIVIRUS": "'$ANTIVIRUS'",
|
||||
"ANTISPAM": "'$ANTISPAM'",
|
||||
"DKIM": "'$DKIM'",
|
||||
"CATCHALL": "'$CATCHALL'",
|
||||
"ACCOUNTS": "'$ACCOUNTS'",
|
||||
"U_DISKL": "'$U_DISK'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
((i++))
|
||||
done < <(cat $USER_DATA/mail.conf)
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
IFS=$'\n'
|
||||
echo "DOMAIN ANTIVIRUS ANTISPAM DKIM ACC DISK SPND DATE"
|
||||
echo "------ --------- -------- ---- --- ---- --- ----"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n "$DOMAIN $ANTIVIRUS $ANTISPAM $DKIM $ACCOUNTS $U_DISK "
|
||||
echo "$SUSPENDED $DATE"
|
||||
done < <(cat $USER_DATA/mail.conf)
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
IFS=$'\n'
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -ne "$DOMAIN\t$ANTIVIRUS\t$ANTISPAM\t$DKIM\t$CATCHALL\t"
|
||||
echo -e "$ACCOUNTS\t$U_DISK\t$SUSPENDED\t$TIME\t$DATE"
|
||||
done < <(cat $USER_DATA/mail.conf)
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
IFS=$'\n'
|
||||
echo -n "DOMAIN,ANTIVIRUS,ANTISPAM,DKIM,CATCHALL,ACCOUNTS,U_DISK,"
|
||||
echo "SUSPENDED,TIME,DATE"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n "$DOMAIN,$ANTIVIRUS,$ANTISPAM,$DKIM,$CATCHALL,$ACCOUNTS,"
|
||||
echo "'$U_DISK,$SUSPENDED,$TIME,$DATE"
|
||||
echo
|
||||
done < <(cat $USER_DATA/mail.conf)
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
check_args '1' "$#" 'USER [FORMAT]'
|
||||
validate_format 'user'
|
||||
is_format_valid 'user'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
|
||||
|
||||
|
@ -30,18 +94,12 @@ is_object_valid 'user' 'USER' "$user"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining fileds to select
|
||||
conf=$USER_DATA/mail.conf
|
||||
fields="\$DOMAIN \$ANTIVIRUS \$ANTISPAM \$DKIM \$ACCOUNTS \$U_DISK \$CATCHALL"
|
||||
fields="$fields \$SUSPENDED \$TIME \$DATE"
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) nohead=1; shell_list ;;
|
||||
shell) fields='$DOMAIN $ANTIVIRUS $ANTISPAM $DKIM $ACCOUNTS $U_DISK $DATE';
|
||||
shell_list | column -t ;;
|
||||
*) check_args '1' '0' 'USER [FORMAT]'
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -15,30 +15,84 @@ format=${1-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=$(grep HOST $VESTA/conf/dns-cluster.conf |wc -l)
|
||||
echo "{"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n ' "'$HOST'": {
|
||||
"PORT": "'$PORT'",
|
||||
"TYPE": "'$TYPE'",
|
||||
"USER": "'$USER'",
|
||||
"DNS_USER": "'$DNS_USER'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
((i++))
|
||||
done < <(cat $VESTA/conf/dns-cluster.conf)
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
IFS=$'\n'
|
||||
echo "HOST PORT TYPE USER DNS_USER SPND DATE"
|
||||
echo "---- ---- ---- ---- -------- ---- ----"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo "$HOST $PORT $TYPE $USER $DNS_USER $SUSPENDED $DATE"
|
||||
done < <(cat $VESTA/conf/dns-cluster.conf)
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
IFS=$'\n'
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -ne "$HOST\t$PORT\t$TYPE\t$USER\t$DNS_USER\t"
|
||||
echo -e "$SUSPENDED\t$TIME\t$DATE"
|
||||
done < <(cat $VESTA/conf/dns-cluster.conf)
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
IFS=$'\n'
|
||||
echo "HOST,PORT,TYPE,USER,DNS_USER,SUSPENDED,TIME,DATE"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo "$HOST,$PORT,$TYPE,$USER,$DNS_USER,$SUSPENDED,$TIME,$DATE"
|
||||
done < <(cat $VESTA/conf/dns-cluster.conf)
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
if [ ! -e "$VESTA/conf/dns-cluster.conf" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Check config
|
||||
conf=$VESTA/conf/dns-cluster.conf
|
||||
if [ ! -e "$conf" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
# Defining fileds to select
|
||||
fields='$HOST $USER $DNS_USER $SUSPENDED $TIME $DATE'
|
||||
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) nohead=1; shell_list ;;
|
||||
shell) shell_list| column -t ;;
|
||||
*) check_args '1' '0' 'USER [FORMAT]';;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#!/bin/bash
|
||||
# info: list system config
|
||||
# info: list system configuration
|
||||
# options: [FORMAT]
|
||||
#
|
||||
# The function for obtaining the list of system parameters.
|
||||
|
@ -12,33 +12,167 @@
|
|||
# Argument definition
|
||||
format=${1-shell}
|
||||
|
||||
# Json function
|
||||
json_list_conf() {
|
||||
lines=$(wc -l $VESTA/conf/vesta.conf | cut -f 1 -d ' ')
|
||||
i='0'
|
||||
IFS=$'\n'
|
||||
echo -e "{\n\t\"config\": {"
|
||||
for str in $(cat $VESTA/conf/vesta.conf); do
|
||||
(( ++i))
|
||||
key=${str%%=*}
|
||||
value=${str#*=}
|
||||
if [ "$i" -lt "$lines" ]; then
|
||||
echo -e "\t\t\"$key\": \"${value//\'/}\","
|
||||
else
|
||||
echo -e "\t\t\"$key\": \"${value//\'/}\""
|
||||
fi
|
||||
done
|
||||
echo -e "\t}\n}"
|
||||
source $VESTA/conf/vesta.conf
|
||||
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '{
|
||||
"config": {
|
||||
"WEB_SYSTEM": "'$WEB_SYSTEM'",
|
||||
"WEB_RGROUPS": "'$WEB_RGROUPS'",
|
||||
"WEB_PORT": "'$WEB_PORT'",
|
||||
"WEB_SSL": "'$WEB_SSL'",
|
||||
"WEB_SSL_PORT": "'$WEB_SSL_PORT'",
|
||||
"WEB_BACKEND": "'$WEB_BACKEND'",
|
||||
"PROXY_SYSTEM": "'$PROXY_SYSTEM'",
|
||||
"PROXY_PORT": "'$PROXY_PORT'",
|
||||
"PROXY_SSL_PORT": "'$PROXY_SSL_PORT'",
|
||||
"FTP_SYSTEM": "'$FTP_SYSTEM'",
|
||||
"MAIL_SYSTEM": "'$MAIL_SYSTEM'",
|
||||
"IMAP_SYSTEM": "'$IMAP_SYSTEM'",
|
||||
"ANTIVIRUS_SYSTEM": "'$ANTIVIRUS_SYSTEM'",
|
||||
"ANTISPAM_SYSTEM": "'$ANTISPAM_SYSTEM'",
|
||||
"DB_SYSTEM": "'$DB_SYSTEM'",
|
||||
"DNS_SYSTEM": "'$DNS_SYSTEM'",
|
||||
"DNS_CLUSTER": "'$DNS_CLUSTER'",
|
||||
"STATS_SYSTEM": "'$STATS_SYSTEM'",
|
||||
"BACKUP_SYSTEM": "'$BACKUP_SYSTEM'",
|
||||
"CRON_SYSTEM": "'$CRON_SYSTEM'",
|
||||
"DISK_QUOTA": "'$DISK_QUOTA'",
|
||||
"FIREWALL_SYSTEM": "'$FIREWALL_SYSTEM'",
|
||||
"FIREWALL_EXTENSION": "'$FIREWALL_EXTENSION'",
|
||||
"FILEMANAGER_KEY": "'$FILEMANAGER_KEY'",
|
||||
"SFTPJAIL_KEY": "'$SFTPJAIL_KEY'",
|
||||
"REPOSITORY": "'$REPOSITORY'",
|
||||
"VERSION": "'$VERSION'",
|
||||
"LANGUAGE": "'$LANGUAGE'",
|
||||
"BACKUP_GZIP": "'$BACKUP_GZIP'",
|
||||
"BACKUP": "'$BACKUP'",
|
||||
"MAIL_URL": "'$MAIL_URL'",
|
||||
"DB_PMA_URL": "'$DB_PMA_URL'",
|
||||
"DB_PGA_URL": "'$DB_PGA_URL'"
|
||||
}
|
||||
}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_conf() {
|
||||
IFS=$'\n'
|
||||
for str in $(cat $VESTA/conf/vesta.conf); do
|
||||
key=${str%%=*}
|
||||
value=${str#*=}
|
||||
echo "$key: ${value//\'/}"
|
||||
done
|
||||
# Shell list
|
||||
shell_list() {
|
||||
if [ ! -z "$WEB_SYSTEM" ]; then
|
||||
echo "WEB Server: $WEB_SYSTEM:$WEB_PORT ($WEB_RGROUPS)"
|
||||
echo "SSL Support: $WEB_SSL:$WEB_SSL_PORT"
|
||||
fi
|
||||
if [ ! -z "$WEB_BACKEND" ]; then
|
||||
echo "WEB Backend: $WEB_BACKEND"
|
||||
fi
|
||||
if [ ! -z "$PROXY_SYSTEM" ]; then
|
||||
echo "Proxy Server: $PROXY_SYSTEM:$PROXY_PORT"
|
||||
echo "Proxy SSL: $PROXY_SYSTEM:$PROXY_SSL_PORT"
|
||||
fi
|
||||
if [ ! -z "$STATS_SYSTEM" ]; then
|
||||
echo "Web Stats: ${STATS_SYSTEM//,/, }"
|
||||
fi
|
||||
if [ ! -z "$FTP_SYSTEM" ]; then
|
||||
echo "FTP Server: $FTP_SYSTEM"
|
||||
fi
|
||||
if [ ! -z "$MAIL_SYSTEM" ]; then
|
||||
echo -n "Mail Server: $MAIL_SYSTEM"
|
||||
if [ ! -z "$IMAP_SYSTEM" ]; then
|
||||
echo -n " + $IMAP_SYSTEM"
|
||||
fi
|
||||
if [ ! -z "$ANTIVIRUS_SYSTEM" ]; then
|
||||
echo -n " + $ANTIVIRUS_SYSTEM"
|
||||
fi
|
||||
if [ ! -z "$ANTISPAM_SYSTEM" ]; then
|
||||
echo -n " + $ANTISPAM_SYSTEM"
|
||||
fi
|
||||
echo
|
||||
if [ ! -z "$MAIL_URL" ]; then
|
||||
echo "Web Mail: hostname + $MAIL_URL"
|
||||
fi
|
||||
fi
|
||||
if [ ! -z "$DB_SYSTEM" ]; then
|
||||
echo "Database: ${DB_SYSTEM//,/, }"
|
||||
if [ ! -z "$DB_PMA_URL" ]; then
|
||||
echo "PMA URL: $DB_PMA_URL"
|
||||
fi
|
||||
if [ ! -z "$DB_PGA_URL" ]; then
|
||||
echo "PGA URL: $DB_PGA_URL"
|
||||
fi
|
||||
fi
|
||||
if [ ! -z "$DNS_SYSTEM" ]; then
|
||||
echo -n "DNS server: $DNS_SYSTEM"
|
||||
if [ ! -z "$DNS_CLUSTER" ]; then
|
||||
echo -n " (cluster)"
|
||||
fi
|
||||
echo
|
||||
fi
|
||||
if [ ! -z "$CRON_SYSTEM" ]; then
|
||||
echo "CRON: $CRON_SYSTEM"
|
||||
fi
|
||||
if [ ! -z "$FIREWALL_SYSTEM" ]; then
|
||||
echo -n "Firewall: $FIREWALL_SYSTEM"
|
||||
if [ ! -z "$FIREWALL_EXTENSION" ]; then
|
||||
echo -n "+ $FIREWALL_EXTENSION"
|
||||
fi
|
||||
echo
|
||||
fi
|
||||
if [ ! -z "$BACKUP_SYSTEM" ]; then
|
||||
echo "Backups: ${BACKUP_SYSTEM//,/, }"
|
||||
if [ ! -z "$BACKUP" ]; then
|
||||
echo "Backup Dir: $BACKUP"
|
||||
fi
|
||||
fi
|
||||
if [ ! -z "$DISK_QUOTA" ]; then
|
||||
echo "Disk Quota: $DISK_QUOTA"
|
||||
fi
|
||||
if [ ! -z "$FILEMANAGER_KEY" ]; then
|
||||
echo "FileManager: $FILEMANAGER_KEY"
|
||||
fi
|
||||
if [ ! -z "$SFTPJAIL_KEY" ]; then
|
||||
echo "SFTP Chroot: $SFTPJAIL_KEY"
|
||||
fi
|
||||
if [ ! -z "$LANGUAGE" ] && [ "$LANGUAGE" != 'en' ]; then
|
||||
echo "Language: $LANGUAGE"
|
||||
fi
|
||||
echo "Version: $VERSION"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo -ne "$WEB_SYSTEM\t$WEB_RGROUPS\t$WEB_PORT\t$WEB_SSL\t"
|
||||
echo -ne "$WEB_SSL_PORT\t$WEB_BACKEND\t$PROXY_SYSTEM\t$PROXY_PORT\t"
|
||||
echo -ne "$PROXY_SSL_PORT\t$FTP_SYSTEM\t$MAIL_SYSTEM\t$IMAP_SYSTEM\t"
|
||||
echo -ne "$ANTIVIRUS_SYSTEM\t$ANTISPAM_SYSTEM\t$DB_SYSTEM\t"
|
||||
echo -ne "$DNS_SYSTEM\t$DNS_CLUSTER\t$STATS_SYSTEM\t$BACKUP_SYSTEM\t"
|
||||
echo -ne "$CRON_SYSTEM\t$DISK_QUOTA\t$FIREWALL_SYSTEM\t"
|
||||
echo -ne "$FIREWALL_EXTENSION\t$FILEMANAGER_KEY\t$SFTPJAIL_KEY\t"
|
||||
echo -ne "$REPOSITORY\t$VERSION\t$LANGUAGE\t$BACKUP_GZIP\t$BACKUP\t"
|
||||
echo -e "$MAIL_URL\t$DB_PMA_URL\t$DB_PGA_URL"
|
||||
}
|
||||
|
||||
|
||||
# CSV list
|
||||
csv_list() {
|
||||
echo -n "'WEB_SYSTEM','WEB_RGROUPS','WEB_PORT','WEB_SSL',"
|
||||
echo -n "'WEB_SSL_PORT','WEB_BACKEND','PROXY_SYSTEM','PROXY_PORT',"
|
||||
echo -n "'PROXY_SSL_PORT','FTP_SYSTEM','MAIL_SYSTEM','IMAP_SYSTEM',"
|
||||
echo -n "'ANTIVIRUS_SYSTEM','ANTISPAM_SYSTEM','DB_SYSTEM',"
|
||||
echo -n "'DNS_SYSTEM','DNS_CLUSTER','STATS_SYSTEM','BACKUP_SYSTEM',"
|
||||
echo -n "'CRON_SYSTEM','DISK_QUOTA','FIREWALL_SYSTEM',"
|
||||
echo -n "'FIREWALL_EXTENSION','FILEMANAGER_KEY','SFTPJAIL_KEY',"
|
||||
echo -n "'REPOSITORY','VERSION','LANGUAGE','BACKUP_GZIP','BACKUP',"
|
||||
echo -n "'MAIL_URL','DB_PMA_URL','DB_PGA_URL'"
|
||||
echo
|
||||
echo -n "'$WEB_SYSTEM','$WEB_RGROUPS','$WEB_PORT','$WEB_SSL',"
|
||||
echo -n "'$WEB_SSL_PORT','$WEB_BACKEND','$PROXY_SYSTEM','$PROXY_PORT',"
|
||||
echo -n "'$PROXY_SSL_PORT','$FTP_SYSTEM','$MAIL_SYSTEM','$IMAP_SYSTEM',"
|
||||
echo -n "'$ANTIVIRUS_SYSTEM','$ANTISPAM_SYSTEM','$DB_SYSTEM',"
|
||||
echo -n "'$DNS_SYSTEM','$DNS_CLUSTER','$STATS_SYSTEM','$BACKUP_SYSTEM',"
|
||||
echo -n "'$CRON_SYSTEM','$DISK_QUOTA','$FIREWALL_SYSTEM',"
|
||||
echo -n "'$FIREWALL_EXTENSION','$FILEMANAGER_KEY','$SFTPJAIL_KEY',"
|
||||
echo -n "'$REPOSITORY','$VERSION','$LANGUAGE','$BACKUP_GZIP','$BACKUP',"
|
||||
echo -n "'$MAIL_URL','$DB_PMA_URL','$DB_PGA_URL'"
|
||||
echo
|
||||
}
|
||||
|
||||
|
||||
|
@ -46,11 +180,12 @@ shell_list_conf() {
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Listing system config
|
||||
case $format in
|
||||
json) json_list_conf ;;
|
||||
plain) shell_list_conf ;;
|
||||
shell) shell_list_conf | column -t ;;
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) shell_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ for db in $(echo $DB_SYSTEM| tr ',' '\n'); do
|
|||
fi
|
||||
|
||||
# Checking PostgreSQL
|
||||
if [ "$db" = 'pgsql' ]; then
|
||||
if [ "$db" = 'pgsql' ] && [ ! -z "$(which psql)" ]; then
|
||||
echo "PostgreSQL $HOST status"
|
||||
export PGPASSWORD="$PASSWORD"
|
||||
psql -h $HOST -U $USER -c "SELECT * FROM pg_stat_activity"
|
||||
|
|
|
@ -15,6 +15,38 @@ format=${1-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '{'
|
||||
echo ' "sysinfo": {
|
||||
"HOSTNAME": "'$HOSTNAME'",
|
||||
"OS": "'$OS'",
|
||||
"VERSION": "'$VERSION'",
|
||||
"ARCH": "'$ARCH'",
|
||||
"UPTIME": "'$UPTIME'",
|
||||
"LOADAVERAGE": "'$LOADAVERAGE'"
|
||||
}'
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "HOSTNAME OS VER ARCH UPTIME LA"
|
||||
echo "-------- -- --- ---- ------ --"
|
||||
echo "$HOSTNAME $OS $VERSION $ARCH $UPTIME $LOADAVERAGE"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo -e "$HOSTNAME\t$OS\t$VERSION\t$ARCH\t$UPTIME\t$LOADAVERAGE"
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "HOSTNAME,OS,VERSION,ARCH,UPTIME,LOADAVERAGE"
|
||||
echo "$HOSTNAME,$OS,$VERSION,$ARCH,$UPTIME,$LOADAVERAGE"
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
|
@ -30,13 +62,13 @@ if [ -e '/etc/redhat-release' ]; then
|
|||
else
|
||||
OS="RHEL"
|
||||
fi
|
||||
VERSION=$(cat /etc/redhat-release | tr ' ' '\n' |grep [0-9])
|
||||
VERSION=$(cat /etc/redhat-release| tr ' ' '\n' |grep [0-9])
|
||||
else
|
||||
if [ "$(lsb_release -si)" == "Ubuntu" ] && [ -e '/etc/debian_version' ]; then
|
||||
OS="Ubuntu"
|
||||
VERSION=$(grep DISTRIB_RELEASE /etc/lsb-release| cut -f 2 -d '=')
|
||||
else
|
||||
distro=$(head -n1 /etc/issue | cut -f 1 -d ' ')
|
||||
distro=$(head -n1 /etc/issue |cut -f 1 -d ' ')
|
||||
if [ "$distro" = 'Debian' ]; then
|
||||
OS="Debian"
|
||||
VERSION=$(cat /etc/debian_version)
|
||||
|
@ -52,36 +84,19 @@ ARCH=$(arch)
|
|||
|
||||
# Check uptime
|
||||
UPTIME=$(cat /proc/uptime |cut -f 1 -d ' '|cut -f 1 -d .)
|
||||
UPTIME="$(echo $UPTIME / 60 | bc)"
|
||||
UPTIME="$(echo $UPTIME / 60 |bc)"
|
||||
|
||||
# Check LoadAverage
|
||||
LOADAVERAGE=$(cat /proc/loadavg |cut -f 1 -d ' ')
|
||||
|
||||
# Create tmp file
|
||||
tmp_file=$(mktemp)
|
||||
|
||||
# Define key/value pairs
|
||||
str="SYS='sysinfo' HOSTNAME='$HOSTNAME' OS='$OS' VERSION='$VERSION'"
|
||||
str="$str ARCH='$ARCH' UPTIME='$UPTIME' LOADAVERAGE='$LOADAVERAGE'"
|
||||
|
||||
# Defining config
|
||||
echo -e "$str" > $tmp_file
|
||||
conf=$tmp_file
|
||||
|
||||
# Defining fileds to select
|
||||
fields="\$SYS \$HOSTNAME \$OS \$VERSION \$ARCH \$UPTIME \$LOADAVERAGE"
|
||||
|
||||
# Listing services
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) nohead=1; shell_list ;;
|
||||
shell) fields="\$HOSTNAME \$OS \$VERSION \$ARCH \$UPTIME \$LOADAVERAGE"
|
||||
shell_list | column -t ;;
|
||||
*) check_args '1' '0' 'USER [FORMAT]'
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
rm -f $tmp_file
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Vesta #
|
||||
#----------------------------------------------------------#
|
||||
|
|
|
@ -15,31 +15,43 @@ format=${1-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_iface() {
|
||||
dev=$(cat /proc/net/dev |grep : |cut -f 1 -d : |tr -d ' ' |grep -v lo)
|
||||
int_counter=$(echo "$dev" | wc -l)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
objects=$(echo "$interfaces" |wc -l)
|
||||
i=1
|
||||
echo '['
|
||||
for interface in $dev; do
|
||||
if [ "$i" -lt "$int_counter" ]; then
|
||||
echo -e "\t\"$interface\","
|
||||
for interface in $interfaces; do
|
||||
echo -n ' "'$interfaces'"'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo -e "\t\"$interface\""
|
||||
echo
|
||||
fi
|
||||
(( ++i))
|
||||
((i++))
|
||||
done
|
||||
echo "]"
|
||||
echo ']'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_iface() {
|
||||
dev=$(cat /proc/net/dev |grep : |cut -f 1 -d : |tr -d ' ' |grep -v lo)
|
||||
if [ -z "$nohead" ]; then
|
||||
echo "INTERFACES"
|
||||
echo "----------"
|
||||
fi
|
||||
for interface in $dev; do
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "INTERFACE"
|
||||
echo "---------"
|
||||
for interface in $interfaces; do
|
||||
echo "$interface"
|
||||
done
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
for interface in $interfaces; do
|
||||
echo "$interface"
|
||||
done
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "INTERFACE"
|
||||
for interface in $interfaces; do
|
||||
echo "$interface"
|
||||
done
|
||||
}
|
||||
|
@ -49,12 +61,15 @@ shell_list_iface() {
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
json) json_list_iface ;;
|
||||
plain) nohead=1; shell_list_iface ;;
|
||||
shell) shell_list_iface ;;
|
||||
*) check_args '1' '0' '[FORMAT]' ;;
|
||||
# Defining interface list
|
||||
interfaces=$(cat /proc/net/dev |grep : |cut -f 1 -d : |tr -d ' ' |grep -v lo)
|
||||
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -11,50 +11,57 @@
|
|||
|
||||
# Argument definition
|
||||
ip=$1
|
||||
IP=$ip
|
||||
format=${2-shell}
|
||||
|
||||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
source $VESTA/func/ip.sh
|
||||
|
||||
# Json function
|
||||
json_list_ip() {
|
||||
i=1
|
||||
fileds_count=$(echo "$fields" | wc -w)
|
||||
ip_data=$(cat $VESTA/data/ips/$IP)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '{'
|
||||
eval $ip_data
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ $i -eq 1 ]; then
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ $fileds_count -eq $i ]; then
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
|
||||
fi
|
||||
fi
|
||||
(( ++i))
|
||||
done
|
||||
if [ -n "$value" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
echo -e '}'
|
||||
echo ' "'$ip'": {
|
||||
"OWNER": "'$OWNER'",
|
||||
"STATUS": "'$STATUS'",
|
||||
"NAME": "'$NAME'",
|
||||
"U_SYS_USERS": "'$U_SYS_USERS'",
|
||||
"U_WEB_DOMAINS": "'$U_WEB_DOMAINS'",
|
||||
"INTERFACE": "'$INTERFACE'",
|
||||
"NETMASK": "'$NETMASK'",
|
||||
"NAT": "'$NAT'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_ip() {
|
||||
line=$(cat $VESTA/data/ips/$IP)
|
||||
eval $line
|
||||
for field in $fields; do
|
||||
eval key="$field"
|
||||
if [ -z "$key" ]; then
|
||||
key='NULL'
|
||||
fi
|
||||
echo "${field//$/}: $key "
|
||||
done
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "IP: $ip"
|
||||
echo "NETMASK: $NETMASK"
|
||||
echo "INTERFACE: $INTERFACE"
|
||||
echo "NAT: $NAT"
|
||||
echo "OWNER: $OWNER"
|
||||
echo "STATUS: $STATUS"
|
||||
echo "NAME: $NAME"
|
||||
echo "USERS: $U_SYS_USERS"
|
||||
echo "DOMAINS: $U_WEB_DOMAINS"
|
||||
echo "TIME: $TIME"
|
||||
echo "DATE: $DATE"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo -ne "$IP\t$OWNER\t$STATUS\t$NAME\t$U_SYS_USERS\t$U_WEB_DOMAINS\t"
|
||||
echo -e "$INTERFACE\t$NETMASK\t$NAT\t$TIME\t$DATE"
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo -n "IP,OWNER,STATUS,NAME,U_SYS_USERS,U_WEB_DOMAINS,INTERFACE"
|
||||
echo "NETMASK,NAT,TIME,DATE"
|
||||
echo -n "$IP,$OWNER,$STATUS,$NAME,\"$U_SYS_USERS\",$U_WEB_DOMAINS,"
|
||||
echo "$INTERFACE, $NETMASK,$NAT,$TIME,$DATE"
|
||||
}
|
||||
|
||||
|
||||
|
@ -62,26 +69,26 @@ shell_list_ip() {
|
|||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Checking args
|
||||
check_args '1' "$#" 'IP [FORMAT]'
|
||||
validate_format 'ip'
|
||||
is_ip_valid
|
||||
is_format_valid 'ip'
|
||||
if [ ! -e "$VESTA/data/ips/$ip" ]; then
|
||||
check_result $E_NOTEXIST "ip $ip doesn't exist"
|
||||
fi
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
conf=$VESTA/data/ips/$IP
|
||||
|
||||
# Defining fileds to select
|
||||
fields='$IP $OWNER $STATUS $NAME $U_SYS_USERS $U_WEB_DOMAINS $INTERFACE
|
||||
$NETMASK $NAT $TIME $DATE'
|
||||
# Parsing ip
|
||||
source $VESTA/data/ips/$ip
|
||||
|
||||
# Listing ip
|
||||
case $format in
|
||||
json) json_list_ip ;;
|
||||
plain) shell_list_ip ;;
|
||||
shell) shell_list_ip | column -t ;;
|
||||
*) check_args '1' '0' 'IP [FORMAT]'
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# info: list system ips
|
||||
# options: [FORMAT]
|
||||
#
|
||||
# The function for obtaining the list of system ip's.
|
||||
# The function for obtaining the list of system ip adresses.
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
|
@ -15,62 +15,66 @@ format=${1-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_ips() {
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '{'
|
||||
ip_list=$(ls --sort=time $VESTA/data/ips/)
|
||||
fileds_count=$(echo "$fields" | wc -w)
|
||||
for IP in $ip_list; do
|
||||
ip_data=$(cat $VESTA/data/ips/$IP)
|
||||
eval $ip_data
|
||||
if [ -n "$data" ]; then
|
||||
echo -e ' },'
|
||||
ip_count=$(ls $VESTA/data/ips/ |wc -l)
|
||||
i=1
|
||||
while read IP; do
|
||||
source $VESTA/data/ips/$IP
|
||||
echo -n ' "'$IP'": {
|
||||
"OWNER": "'$OWNER'",
|
||||
"STATUS": "'$STATUS'",
|
||||
"NAME": "'$NAME'",
|
||||
"U_SYS_USERS": "'$U_SYS_USERS'",
|
||||
"U_WEB_DOMAINS": "'$U_WEB_DOMAINS'",
|
||||
"INTERFACE": "'$INTERFACE'",
|
||||
"NETMASK": "'$NETMASK'",
|
||||
"NAT": "'$NAT'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
if [ "$i" -lt "$ip_count" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
i=1
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ $i -eq 1 ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ $i -lt $fileds_count ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\t\"${field//$/}\": \"$value\","
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"$value\""
|
||||
data=1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
done
|
||||
if [ -n "$data" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
echo -e '}'
|
||||
((i++))
|
||||
done < <(ls $VESTA/data/ips/)
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_ips() {
|
||||
ip_list=$(ls $VESTA/data/ips/)
|
||||
if [ -z "$nohead" ]; then
|
||||
echo "${fields//$/}"
|
||||
for a in $fields; do
|
||||
echo -e "--------- \c"
|
||||
done
|
||||
echo
|
||||
fi
|
||||
|
||||
for IP in $ip_list; do
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "IP MASK NAT STATUS WEB DATE"
|
||||
echo "-- ---- --- ------ --- ----"
|
||||
while read IP; do
|
||||
source $VESTA/data/ips/$IP
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ -z "$value" ]; then
|
||||
value='NULL'
|
||||
fi
|
||||
echo -n "$value "
|
||||
done
|
||||
echo
|
||||
done
|
||||
if [ -z "$NAT" ]; then
|
||||
NAT='no'
|
||||
fi
|
||||
echo "$IP $NETMASK $NAT $STATUS $U_WEB_DOMAINS $DATE"
|
||||
done < <(ls $VESTA/data/ips/)
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
while read IP; do
|
||||
source $VESTA/data/ips/$IP
|
||||
echo -ne "$IP\t$OWNER\t$STATUS\t$NAME\t$U_SYS_USERS\t$U_WEB_DOMAINS\t"
|
||||
echo -e "$INTERFACE\t$NETMASK\t$NAT\t$TIME\t$DATE"
|
||||
done < <(ls $VESTA/data/ips/)
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo -n "IP,OWNER,STATUS,NAME,U_SYS_USERS,U_WEB_DOMAINS,INTERFACE"
|
||||
echo "NETMASK,NAT,TIME,DATE"
|
||||
while read IP; do
|
||||
source $VESTA/data/ips/$IP
|
||||
echo -n "$IP,$OWNER,$STATUS,$NAME,\"$U_SYS_USERS\",$U_WEB_DOMAINS,"
|
||||
echo "$INTERFACE, $NETMASK,$NAT,$TIME,$DATE"
|
||||
done < <(ls $VESTA/data/ips/)
|
||||
}
|
||||
|
||||
|
||||
|
@ -78,18 +82,12 @@ shell_list_ips() {
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining fileds to select
|
||||
conf=$VESTA/data/ips/*
|
||||
fields="\$IP \$OWNER \$STATUS \$NAME \$U_SYS_USERS \$U_WEB_DOMAINS"
|
||||
fields="$fields \$INTERFACE \$NETMASK \$NAT \$TIME \$DATE"
|
||||
|
||||
# Listing ip addresses
|
||||
case $format in
|
||||
json) json_list_ips ;;
|
||||
plain) nohead=1; shell_list_ips ;;
|
||||
shell) fields='$IP $NETMASK $NAT $OWNER $U_WEB_DOMAINS';
|
||||
shell_list_ips | column -t ;;
|
||||
*) check_args '1' '0' '[FORMAT]'
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -16,13 +16,13 @@ format=${1-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_lang() {
|
||||
int_counter=$(echo "$languages" | wc -l)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
objects=$(echo "$languages" |wc -l)
|
||||
i=1
|
||||
echo '['
|
||||
for lang in $languages; do
|
||||
if [ "$i" -lt "$int_counter" ]; then
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo -e "\t\"$lang\","
|
||||
else
|
||||
echo -e "\t\"$lang\""
|
||||
|
@ -32,12 +32,25 @@ json_list_lang() {
|
|||
echo "]"
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_lang() {
|
||||
if [ -z "$nohead" ]; then
|
||||
echo "LANGUAGES"
|
||||
echo "----------"
|
||||
fi
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "LANGUAGE"
|
||||
echo "--------"
|
||||
for lang in $languages; do
|
||||
echo "$lang"
|
||||
done
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
for lang in $languages; do
|
||||
echo "$lang"
|
||||
done
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "LANGUAGE"
|
||||
for lang in $languages; do
|
||||
echo "$lang"
|
||||
done
|
||||
|
@ -48,15 +61,15 @@ shell_list_lang() {
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Check languages
|
||||
languages=$(ls $VESTA/web/inc/i18n/|cut -f 1 -d .)
|
||||
# Defining language list
|
||||
languages=$(ls $VESTA/web/inc/i18n/ |cut -f 1 -d .)
|
||||
|
||||
# Listing domains
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list_lang ;;
|
||||
plain) nohead=1; shell_list_lang ;;
|
||||
shell) shell_list_lang ;;
|
||||
*) check_args '1' '0' '[FORMAT]' ;;
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -15,10 +15,16 @@ format=${1-shell}
|
|||
source $VESTA/func/main.sh
|
||||
source $VESTA/conf/vesta.conf
|
||||
|
||||
# Define json function
|
||||
json_list_rrd() {
|
||||
# JSON list function
|
||||
json_list() {
|
||||
i=1
|
||||
echo "{"
|
||||
|
||||
# Generating timestamp
|
||||
time_n_date=$(date +'%T %F')
|
||||
TIME=$(echo "$time_n_date" |cut -f 1 -d \ )
|
||||
DATE=$(echo "$time_n_date" |cut -f 2 -d \ )
|
||||
|
||||
for type in $rrd_types; do
|
||||
for rrd in $(ls $RRD/$type |grep rrd$ |sed "s/\.rrd$//g"); do
|
||||
if [ "$i" -ne 1 ]; then
|
||||
|
@ -61,12 +67,37 @@ json_list_rrd() {
|
|||
echo "}"
|
||||
}
|
||||
|
||||
# Define jshell function
|
||||
shell_list_rrd() {
|
||||
if [ -z "$nohead" ]; then
|
||||
echo "PATH"
|
||||
echo "---------"
|
||||
fi
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "TYPE VAL_1 VAL_2 VAL_3 TIME DATE"
|
||||
echo "---- ----- ----- ----- ---- ----"
|
||||
for type in $rrd_types; do
|
||||
for rrd in $(ls $RRD/$type |grep rrd$ |sed "s/\.rrd$//g"); do
|
||||
rrd_type=$(echo "$rrd" |tr '[:lower:]' '[:upper:]')
|
||||
rrd_data=$(rrdtool fetch "$RRD/$type/$rrd.rrd" AVERAGE -e 0 -s 0)
|
||||
rrd_data=$(echo "$rrd_data" |tail -n 1)
|
||||
rrd_timestamp=$(echo "$rrd_data" |cut -f 1 -d :)
|
||||
rrd_time=$(date -d "@$rrd_timestamp" +%F)
|
||||
rrd_date=$(date -d "@$rrd_timestamp" +%T)
|
||||
rrd_val1=$(echo "$rrd_data" |awk '{print $2}' |cut -d. -f1)
|
||||
rrd_val2=$(echo "$rrd_data" |awk '{print $3}' |cut -d. -f1)
|
||||
rrd_val3=$(echo "$rrd_data" |awk '{print $4}' |cut -d. -f1)
|
||||
if [ -z "$rrd_val1" ]; then
|
||||
rrd_val1="-nan"
|
||||
fi
|
||||
if [ -z "$rrd_val2" ]; then
|
||||
rrd_val2="-nan"
|
||||
fi
|
||||
if [ -z "$rrd_val3" ]; then
|
||||
rrd_val3="-nan"
|
||||
fi
|
||||
echo "$rrd_type $rrd_val1 $rrd_val2 $rrd_val3 $rrd_time $rrd_date"
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
for type in $rrd_types; do
|
||||
for rrd in $(ls $RRD/$type |grep rrd$ |sed "s/\.rrd$//g"); do
|
||||
echo "$RRD/$type/$rrd.rrd"
|
||||
|
@ -74,39 +105,53 @@ shell_list_rrd() {
|
|||
done
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
for type in $rrd_types; do
|
||||
echo "RRD"
|
||||
for rrd in $(ls $RRD/$type |grep rrd$ |sed "s/\.rrd$//g"); do
|
||||
echo "$RRD/$type/$rrd.rrd"
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Checking enabled systems
|
||||
# Definng rrd charts
|
||||
rrd_types="la mem net"
|
||||
|
||||
if [ -n "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
|
||||
# Checking web system
|
||||
if [ ! -z "$WEB_SYSTEM" ]; then
|
||||
rrd_types="$rrd_types web"
|
||||
fi
|
||||
|
||||
if [ -n "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
|
||||
# Checking mail system
|
||||
if [ ! -z "$MAIL_SYSTEM" ]; then
|
||||
rrd_types="$rrd_types mail"
|
||||
fi
|
||||
|
||||
if [ -n "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
|
||||
# Checking db system
|
||||
if [ ! -z "$DB_SYSTEM" ]; then
|
||||
rrd_types="$rrd_types db"
|
||||
fi
|
||||
|
||||
if [ -n "$FTP_SYSTEM" ] && [ "$FTP_SYSTEM" != 'no' ]; then
|
||||
# Checking ftp system
|
||||
if [ ! -z "$FTP_SYSTEM" ]; then
|
||||
rrd_types="$rrd_types ftp"
|
||||
fi
|
||||
|
||||
# Adding ssh
|
||||
rrd_types="$rrd_types ssh"
|
||||
|
||||
|
||||
# Listing domains
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list_rrd ;;
|
||||
plain) nohead=1; shell_list_rrd ;;
|
||||
shell) shell_list_rrd | column -t ;;
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -18,25 +18,80 @@ source $VESTA/conf/vesta.conf
|
|||
|
||||
export PATH=$PATH:/sbin
|
||||
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=$(echo -e "$data" |grep NAME |wc -l)
|
||||
echo "{"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n ' "'$NAME'": {
|
||||
"SYSTEM": "'$SYSTEM'",
|
||||
"STATE": "'$STATE'",
|
||||
"CPU": "'$CPU'",
|
||||
"MEM": "'$MEM'",
|
||||
"RTIME": "'$RTIME'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
((i++))
|
||||
done < <(echo -e "$data" |grep NAME)
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
IFS=$'\n'
|
||||
echo "NAME STATE CPU MEM UPTIME"
|
||||
echo "---- ----- --- --- ------"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo "$NAME $STATE $CPU $MEM $RTIME"
|
||||
done < <(echo -e "$data" |grep NAME)
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
IFS=$'\n'
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -e "$NAME\t$SYSTEM\t$STATE\t$CPU\t$MEM\t$RTIME"
|
||||
done < <(echo -e "$data" |grep NAME)
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
IFS=$'\n'
|
||||
echo "NAME,SYSTEM,STATE,CPU,MEM,RTIME"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo "$NAME,\"$SYSTEM\",$STATE,$CPU,$MEM,$RTIME"
|
||||
done < <(echo -e "$data" |grep NAME)
|
||||
}
|
||||
|
||||
# Get service state function
|
||||
get_srv_state() {
|
||||
srv=$1
|
||||
proc_name=${2-$1}
|
||||
|
||||
# Check service status
|
||||
name=${2-$1}
|
||||
state='running'
|
||||
|
||||
# Searching related pids
|
||||
if [ -z $3 ]; then
|
||||
pids=$(pidof $proc_name |tr ' ' '|')
|
||||
pids=$(pidof $name |tr ' ' '|')
|
||||
else
|
||||
pids=$(pidof -x $proc_name |tr ' ' '|')
|
||||
pids=$(pidof -x $name |tr ' ' '|')
|
||||
fi
|
||||
if [ -z "$pids" ] && [ "$proc_name" != 'nginx' ] ; then
|
||||
#fallback to pgrep
|
||||
pids=$(pgrep $proc_name |tr '\n' '|')
|
||||
if [ -z "$pids" ] && [ "$name" != 'nginx' ]; then
|
||||
pids=$(pgrep $name |tr '\n' '|')
|
||||
fi
|
||||
|
||||
# Checking pid
|
||||
if [ ! -z "$pids" ]; then
|
||||
pid=$(echo $pids|cut -f 1 -d \|)
|
||||
pid=$(echo "$pids" |cut -f 1 -d '|')
|
||||
pids=$(egrep "$pids" $tmp_file)
|
||||
|
||||
# Calculating CPU usage
|
||||
|
@ -46,25 +101,30 @@ get_srv_state() {
|
|||
mem=$(echo "$pids" |awk '{sum += $3} END {print sum/1024 }')
|
||||
mem=$(printf "%.0f\n" $mem)
|
||||
|
||||
# Searching service uptime
|
||||
# Searching pid file
|
||||
pid_file=''
|
||||
if [ -e "/var/run/$srv.pid" ]; then
|
||||
srv_file="/var/run/$srv.pid"
|
||||
pid_file="/var/run/$srv.pid"
|
||||
fi
|
||||
if [ -z "$srv_file" ] && [ -e "/var/run/$srv/$srv.pid" ]; then
|
||||
srv_file="/var/run/$srv/$srv.pid"
|
||||
if [ -z "$pid_file" ] && [ -e "/var/run/$srv/$srv.pid" ]; then
|
||||
pid_file="/var/run/$srv/$srv.pid"
|
||||
fi
|
||||
if [ -z $srv_file ] && [ -e "/proc/$pid" ]; then
|
||||
srv_file="/proc/$pid"
|
||||
if [ -z "$pid_file" ] && [ -e "/var/run/$name/$name.pid" ]; then
|
||||
pid_file="/var/run/$name/$name.pid"
|
||||
fi
|
||||
if [ ! -z "$srv_file" ]; then
|
||||
mtime=$(stat -c "%Y" $srv_file)
|
||||
if [ -z "$pid_file" ] && [ -e "/proc/$pid" ]; then
|
||||
pid_file="/proc/$pid"
|
||||
fi
|
||||
|
||||
# Calculating uptime
|
||||
if [ ! -z "$pid_file" ]; then
|
||||
mtime=$(stat -c "%Y" $pid_file)
|
||||
rtime=$((ctime - mtime))
|
||||
rtime=$((rtime / 60))
|
||||
else
|
||||
rtime=0
|
||||
fi
|
||||
else
|
||||
# Service is stopped
|
||||
state='stopped'
|
||||
mem=0
|
||||
cpu=0
|
||||
|
@ -77,105 +137,92 @@ get_srv_state() {
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Save current proccess list
|
||||
# Saving current proccess list
|
||||
tmp_file=$(mktemp)
|
||||
ps -eo pid,pcpu,size > $tmp_file
|
||||
|
||||
# Get current time
|
||||
# Checking current time
|
||||
ctime=$(date +%s)
|
||||
|
||||
# Web
|
||||
service=$WEB_SYSTEM
|
||||
if [ ! -z "$service" ] && [ "$service" != 'remote' ]; then
|
||||
if [ "$service" == 'apache' ]; then
|
||||
service='httpd'
|
||||
fi
|
||||
get_srv_state $service
|
||||
str="NAME='$service' SYSTEM='web server' STATE='$state' CPU='$cpu'"
|
||||
str="$str MEM='$mem' RTIME='$rtime'"
|
||||
|
||||
# Checking WEB system
|
||||
if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'remote' ]; then
|
||||
get_srv_state $WEB_SYSTEM
|
||||
data="NAME='$WEB_SYSTEM' SYSTEM='web server' STATE='$state' CPU='$cpu'"
|
||||
data="$data MEM='$mem' RTIME='$rtime'"
|
||||
fi
|
||||
|
||||
# Backend
|
||||
service=$WEB_BACKEND
|
||||
if [ ! -z "$service" ] && [ "$service" != 'remote' ]; then
|
||||
get_srv_state $service
|
||||
str="$str\nNAME='$service' SYSTEM='backend server' STATE='$state' CPU='$cpu'"
|
||||
str="$str MEM='$mem' RTIME='$rtime'"
|
||||
# Checking WEB Backend
|
||||
if [ ! -z "$WEB_BACKEND" ] && [ "$WEB_BACKEND" != 'remote' ]; then
|
||||
get_srv_state $WEB_BACKEND
|
||||
data="$data\nNAME='$WEB_BACKEND' SYSTEM='backend server' STATE='$state'"
|
||||
data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'"
|
||||
fi
|
||||
|
||||
# Proxy
|
||||
service=$PROXY_SYSTEM
|
||||
if [ ! -z "$service" ] && [ "$service" != 'remote' ]; then
|
||||
get_srv_state $service
|
||||
str="$str\nNAME='$service' SYSTEM='reverse proxy' STATE='$state' CPU='$cpu'"
|
||||
str="$str MEM='$mem' RTIME='$rtime'"
|
||||
# Checking WEB Proxy
|
||||
if [ ! -z "$PROXY_SYSTEM" ] && [ "$PROXY_SYSTEM" != 'remote' ]; then
|
||||
get_srv_state $PROXY_SYSTEM
|
||||
data="$data\nNAME='$PROXY_SYSTEM' SYSTEM='reverse proxy' STATE='$state'"
|
||||
data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'"
|
||||
fi
|
||||
|
||||
|
||||
# DNS
|
||||
service=$DNS_SYSTEM
|
||||
if [ ! -z "$service" ] && [ "$service" != 'remote' ]; then
|
||||
if [ "$service" == 'bind' ] || [ "$service" == 'bind9' ]; then
|
||||
# Checking DNS system
|
||||
if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'remote' ]; then
|
||||
if [ "$DNS_SYSTEM" == 'bind' ] || [ "$DNS_SYSTEM" == 'bind9' ]; then
|
||||
proc_name='named'
|
||||
fi
|
||||
get_srv_state $service $proc_name
|
||||
str="$str\nNAME='$service' SYSTEM='dns server' STATE='$state' CPU='$cpu'"
|
||||
str="$str MEM='$mem' RTIME='$rtime'"
|
||||
get_srv_state $DNS_SYSTEM $proc_name
|
||||
data="$data\nNAME='$DNS_SYSTEM' SYSTEM='dns server' STATE='$state'"
|
||||
data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'"
|
||||
fi
|
||||
|
||||
# MAIL
|
||||
service=$MAIL_SYSTEM
|
||||
if [ ! -z "$service" ] && [ "$service" != 'remote' ]; then
|
||||
get_srv_state $service
|
||||
str="$str\nNAME='$service' SYSTEM='mail server' STATE='$state' CPU='$cpu'"
|
||||
str="$str MEM='$mem' RTIME='$rtime'"
|
||||
# Checking MAIL system
|
||||
if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'remote' ]; then
|
||||
get_srv_state $MAIL_SYSTEM
|
||||
data="$data\nNAME='$MAIL_SYSTEM' SYSTEM='mail server' STATE='$state'"
|
||||
data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'"
|
||||
fi
|
||||
|
||||
# IMAP
|
||||
service=$IMAP_SYSTEM
|
||||
if [ ! -z "$service" ] && [ "$service" != 'remote' ]; then
|
||||
get_srv_state $service
|
||||
str="$str\nNAME='$service' SYSTEM='pop/imap server' STATE='$state'"
|
||||
str="$str CPU='$cpu' MEM='$mem' RTIME='$rtime'"
|
||||
# Checking MAIL IMAP
|
||||
if [ ! -z "$IMAP_SYSTEM" ] && [ "$IMAP_SYSTEM" != 'remote' ]; then
|
||||
get_srv_state $IMAP_SYSTEM
|
||||
data="$data\nNAME='$IMAP_SYSTEM' SYSTEM='pop/imap server' STATE='$state'"
|
||||
data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'"
|
||||
fi
|
||||
|
||||
# ANTIVIRUS
|
||||
service=$ANTIVIRUS_SYSTEM
|
||||
if [ ! -z "$service" ] && [ "$service" != 'remote' ]; then
|
||||
# Checking MAIL ANTIVIRUS
|
||||
if [ ! -z "$ANTIVIRUS_SYSTEM" ] && [ "$ANTIVIRUS_SYSTEM" != 'remote' ]; then
|
||||
if [ -e "/etc/redhat-release" ]; then
|
||||
if [ "$ANTIVIRUS_SYSTEM" = 'clamav' ];then
|
||||
service='clamd'
|
||||
if [ "$ANTIVIRUS_SYSTEM" == 'clamav' ];then
|
||||
ANTIVIRUS_SYSTEM='clamd'
|
||||
fi
|
||||
get_srv_state $service
|
||||
get_srv_state $ANTIVIRUS_SYSTEM
|
||||
else
|
||||
if [ "$ANTIVIRUS_SYSTEM" = 'clamav-daemon' ];then
|
||||
clam_proc_name='clamd'
|
||||
if [ "$ANTIVIRUS_SYSTEM" == 'clamav-daemon' ];then
|
||||
proc_name='clamd'
|
||||
fi
|
||||
get_srv_state $service $clam_proc_name
|
||||
get_srv_state $ANTIVIRUS_SYSTEM $proc_name
|
||||
fi
|
||||
str="$str\nNAME='$service' SYSTEM='email antivirus' STATE='$state'"
|
||||
str="$str CPU='$cpu' MEM='$mem' RTIME='$rtime'"
|
||||
data="$data\nNAME='$ANTIVIRUS_SYSTEM' SYSTEM='email antivirus'"
|
||||
data="$data STATE='$state' CPU='$cpu' MEM='$mem' RTIME='$rtime'"
|
||||
proc_name=''
|
||||
fi
|
||||
|
||||
# ANTISPAM
|
||||
service=$ANTISPAM_SYSTEM
|
||||
if [ ! -z "$service" ] && [ "$service" != 'remote' ]; then
|
||||
get_srv_state $service spamd
|
||||
str="$str\nNAME='$service' SYSTEM='email antispam' STATE='$state'"
|
||||
str="$str CPU='$cpu' MEM='$mem' RTIME='$rtime'"
|
||||
# Checking MAIL ANTISPAM
|
||||
if [ ! -z "$ANTISPAM_SYSTEM" ] && [ "$ANTISPAM_SYSTEM" != 'remote' ]; then
|
||||
get_srv_state $ANTISPAM_SYSTEM spamd
|
||||
data="$data\nNAME='$ANTISPAM_SYSTEM' SYSTEM='email antispam'"
|
||||
data="$data STATE='$state' CPU='$cpu' MEM='$mem' RTIME='$rtime'"
|
||||
fi
|
||||
|
||||
# DB
|
||||
service=$DB_SYSTEM
|
||||
if [ ! -z "$service" ] && [ "$service" != 'remote' ]; then
|
||||
# Checking DB system
|
||||
if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'remote' ]; then
|
||||
for db in ${DB_SYSTEM//,/ }; do
|
||||
db_proc_name=''
|
||||
proc_name=''
|
||||
service="$db"
|
||||
if [ "$service" = 'mysql' ]; then
|
||||
if [ -e "/etc/redhat-release" ]; then
|
||||
service='mysqld'
|
||||
db_proc_name='mysqld'
|
||||
proc_name='mysqld'
|
||||
if [ -e "/usr/lib/systemd/system/mariadb.service" ]; then
|
||||
service='mariadb'
|
||||
fi
|
||||
|
@ -183,39 +230,37 @@ if [ ! -z "$service" ] && [ "$service" != 'remote' ]; then
|
|||
fi
|
||||
if [ "$service" == 'pgsql' ]; then
|
||||
service='postgresql'
|
||||
db_proc_name='postmaster'
|
||||
proc_name='postmaster'
|
||||
if [ ! -e "/etc/redhat-release" ]; then
|
||||
db_proc_name='postgres'
|
||||
proc_name='postgres'
|
||||
fi
|
||||
if [ ! -e '/etc/init.d/postgresql' ]; then
|
||||
db_proc_name='postgres'
|
||||
proc_name='postgres'
|
||||
fi
|
||||
fi
|
||||
get_srv_state $service $db_proc_name
|
||||
str="$str\nNAME='$service' SYSTEM='database server' STATE='$state'"
|
||||
str="$str CPU='$cpu' MEM='$mem' RTIME='$rtime'"
|
||||
get_srv_state $service $proc_name
|
||||
data="$data\nNAME='$service' SYSTEM='database server' STATE='$state'"
|
||||
data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'"
|
||||
proc_name=''
|
||||
done
|
||||
fi
|
||||
|
||||
# FTP
|
||||
service=$FTP_SYSTEM
|
||||
if [ ! -z "$service" ] && [ "$service" != 'remote' ]; then
|
||||
get_srv_state $service
|
||||
str="$str\nNAME='$service' SYSTEM='ftp server' STATE='$state' CPU='$cpu'"
|
||||
str="$str MEM='$mem' RTIME='$rtime'"
|
||||
# Checking FTP system
|
||||
if [ ! -z "$FTP_SYSTEM" ] && [ "$FTP_SYSTEM" != 'remote' ]; then
|
||||
get_srv_state $FTP_SYSTEM
|
||||
data="$data\nNAME='$FTP_SYSTEM' SYSTEM='ftp server' STATE='$state'"
|
||||
data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'"
|
||||
fi
|
||||
|
||||
# CRON
|
||||
service=$CRON_SYSTEM
|
||||
if [ ! -z "$service" ] && [ "$service" != 'remote' ]; then
|
||||
get_srv_state $service
|
||||
str="$str\nNAME='$service' SYSTEM='job scheduler' STATE='$state'"
|
||||
str="$str CPU='$cpu' MEM='$mem' RTIME='$rtime'"
|
||||
# Checking CRON system
|
||||
if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'remote' ]; then
|
||||
get_srv_state $CRON_SYSTEM
|
||||
data="$data\nNAME='$CRON_SYSTEM' SYSTEM='job scheduler' STATE='$state'"
|
||||
data="$data CPU='$cpu' MEM='$mem' RTIME='$rtime'"
|
||||
fi
|
||||
|
||||
# FIREWALL
|
||||
service=$FIREWALL_SYSTEM
|
||||
if [ ! -z "$service" ] && [ "$service" != 'remote' ]; then
|
||||
# Checking FIREWALL system
|
||||
if [ ! -z "$FIREWALL_SYSTEM" ] && [ "$FIREWALL_SYSTEM" != 'remote' ]; then
|
||||
state="stopped"
|
||||
/sbin/iptables -L vesta >/dev/null 2>&1
|
||||
if [ "$?" -eq 0 ]; then
|
||||
|
@ -225,32 +270,21 @@ if [ ! -z "$service" ] && [ "$service" != 'remote' ]; then
|
|||
str="$str STATE='$state' CPU='0' MEM='0' RTIME='0'"
|
||||
fi
|
||||
|
||||
# Fail2ban
|
||||
service=$FIREWALL_EXTENSION
|
||||
if [ ! -z "$service" ] && [ "$service" != 'remote' ]; then
|
||||
get_srv_state $service fail2ban-server script
|
||||
str="$str\nNAME='$service' SYSTEM='brute-force monitor' STATE='$state'"
|
||||
str="$str CPU='$cpu' MEM='$mem' RTIME='$rtime'"
|
||||
# Checking FIREWALL Fail2ban extention
|
||||
if [ ! -z "$FIREWALL_EXTENSION" ]; then
|
||||
get_srv_state $FIREWALL_EXTENSION fail2ban-server script
|
||||
data="$data\nNAME='$FIREWALL_EXTENSION' SYSTEM='brute-force monitor'"
|
||||
data="$data STATE='$state' CPU='$cpu' MEM='$mem' RTIME='$rtime'"
|
||||
fi
|
||||
|
||||
|
||||
# Defining config
|
||||
echo -e "$str" > $tmp_file
|
||||
conf=$tmp_file
|
||||
|
||||
# Defining fileds to select
|
||||
fields="\$NAME \$SYSTEM \$STATE \$CPU \$MEM \$RTIME"
|
||||
|
||||
# Listing services
|
||||
case $format in
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) nohead=1; shell_list ;;
|
||||
shell) fields='$NAME $STATE $CPU $MEM $RTIME'
|
||||
shell_list | column -t ;;
|
||||
*) check_args '1' '0' 'USER [FORMAT]'
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
rm -f $tmp_file
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Vesta #
|
||||
|
|
|
@ -15,14 +15,12 @@ format=${1-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_sh() {
|
||||
shells=$(grep -v '#' /etc/shells)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
sh_counter=$(echo "$shells" | wc -l)
|
||||
i=1
|
||||
echo '['
|
||||
for shell in $shells; do
|
||||
shell=$(basename $shell)
|
||||
if [ "$i" -lt "$sh_counter" ]; then
|
||||
echo -e "\t\"$shell\","
|
||||
else
|
||||
|
@ -33,15 +31,26 @@ json_list_sh() {
|
|||
echo "]"
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_sh() {
|
||||
shells=$(grep -v '#' /etc/shells)
|
||||
if [ -z "$nohead" ]; then
|
||||
echo "SHELLS"
|
||||
echo "----------"
|
||||
fi
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "SHELL"
|
||||
echo "-----"
|
||||
for shell in $shells; do
|
||||
echo "$shell"
|
||||
done
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
for shell in $shells; do
|
||||
echo "$shell"
|
||||
done
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "SHELL"
|
||||
for shell in $shells; do
|
||||
shell=$(basename $shell)
|
||||
echo "$shell"
|
||||
done
|
||||
}
|
||||
|
@ -51,12 +60,15 @@ shell_list_sh() {
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
json) json_list_sh ;;
|
||||
plain) nohead=1; shell_list_sh ;;
|
||||
shell) shell_list_sh ;;
|
||||
*) check_args '1' '0' '[FORMAT]' ;;
|
||||
# Defining system shells
|
||||
shells=$(grep -v '#' /etc/shells |awk -F '/' '{print $NF}' |sort -u)
|
||||
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -16,32 +16,44 @@ format=${1-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_users() {
|
||||
users=$(grep @ /etc/passwd|cut -f 1 -d :)
|
||||
int_counter=$(echo "$users" | wc -l)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
objects=$(echo "$users" |wc -l)
|
||||
i=1
|
||||
echo '['
|
||||
for user in $users; do
|
||||
if [ "$i" -lt "$int_counter" ]; then
|
||||
while read user; do
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo -e "\t\"$user\","
|
||||
else
|
||||
echo -e "\t\"$user\""
|
||||
fi
|
||||
(( ++i))
|
||||
done
|
||||
done < <(grep @ /etc/passwd |cut -f 1 -d :)
|
||||
echo "]"
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_users() {
|
||||
if [ -z "$nohead" ]; then
|
||||
echo "USERS"
|
||||
echo "----------"
|
||||
fi
|
||||
for user in $(grep @ /etc/passwd|cut -f 1 -d :); do
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "USER"
|
||||
echo "----"
|
||||
while read user; do
|
||||
echo "$user"
|
||||
done
|
||||
done < <(grep @ /etc/passwd |cut -f 1 -d :)
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
while read user; do
|
||||
echo "$user"
|
||||
done < <(grep @ /etc/passwd |cut -f 1 -d :)
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "USER"
|
||||
while read user; do
|
||||
echo "$user"
|
||||
done < <(grep @ /etc/passwd |cut -f 1 -d :)
|
||||
}
|
||||
|
||||
|
||||
|
@ -49,12 +61,12 @@ shell_list_users() {
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Listing domains
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list_users ;;
|
||||
plain) nohead=1; shell_list_users ;;
|
||||
shell) shell_list_users ;;
|
||||
*) check_args '1' '0' '[FORMAT]' ;;
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -16,8 +16,8 @@ format=${1-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_autoupdate() {
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '['
|
||||
if [ -z "$check_cron" ]; then
|
||||
echo -e "\t\"Disabled\","
|
||||
|
@ -27,12 +27,28 @@ json_list_autoupdate() {
|
|||
echo "]"
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_autoupdate() {
|
||||
if [ -z "$nohead" ]; then
|
||||
echo "AUTOUPDATE"
|
||||
echo "----------"
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo -n "AUTOUPDATE: "
|
||||
if [ -z "$check_cron" ]; then
|
||||
echo "Disabled"
|
||||
else
|
||||
echo "Enabled"
|
||||
fi
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
if [ -z "$check_cron" ]; then
|
||||
echo "Disabled"
|
||||
else
|
||||
echo "Enabled"
|
||||
fi
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "AUTOUPDATE"
|
||||
if [ -z "$check_cron" ]; then
|
||||
echo "Disabled"
|
||||
else
|
||||
|
@ -48,15 +64,16 @@ shell_list_autoupdate() {
|
|||
# Check cron tab
|
||||
check_cron=$(grep 'v-update-sys-vesta-all' $USER_DATA/cron.conf)
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
json) json_list_autoupdate ;;
|
||||
plain) nohead=1; shell_list_autoupdate ;;
|
||||
shell) shell_list_autoupdate ;;
|
||||
*) check_args '1' '0' '[FORMAT]' ;;
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list;;
|
||||
esac
|
||||
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Vesta #
|
||||
#----------------------------------------------------------#
|
||||
|
|
|
@ -14,22 +14,55 @@ format=${1-shell}
|
|||
|
||||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
fields="\$NAME \$VERSION \$RELEASE \$ARCH \$UPDATED \$DESCR \$TIME \$DATE"
|
||||
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=$(echo -e "$data" |grep NAME |wc -l)
|
||||
echo "{"
|
||||
for str in $(echo -e "$data"); do
|
||||
eval $str
|
||||
echo -n ' "'$NAME'": {
|
||||
"VERSION": "'$VERSION'",
|
||||
"RELEASE": "'$RELEASE'",
|
||||
"ARCH": "'$ARCH'",
|
||||
"UPDATED": "'$UPDATED'",
|
||||
"DESCR": "'$DESCR'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
((i++))
|
||||
done
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
IFS=$'\n'
|
||||
echo "PKG VER REL ARCH UPDT DATE"
|
||||
echo "--- --- --- ---- ---- ----"
|
||||
for str in $(echo -e "$data"); do
|
||||
eval $str
|
||||
echo "$NAME $VERSION $RELEASE $ARCH $UPDATED $DATE"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Remove upd_flag
|
||||
rm -f $VESTA/web/.update
|
||||
# Checking official latest version
|
||||
latest=$(wget -q -T 1 -t 1 http://c.vestacp.com/latest.txt -O -)
|
||||
|
||||
# Create tmp file
|
||||
tmp_file=$(mktemp)
|
||||
|
||||
# Check latest version
|
||||
wget -q -T 1 -t 1 http://c.vestacp.com/latest.txt -O $tmp_file
|
||||
|
||||
# Check vesta version
|
||||
# Checking installed vesta version
|
||||
if [ -e "/etc/redhat-release" ]; then
|
||||
rpm_format="VERSION='%{VERSION}'"
|
||||
rpm_format="$rpm_format RELEASE='%{RELEASE}'"
|
||||
|
@ -41,22 +74,20 @@ if [ -e "/etc/redhat-release" ]; then
|
|||
else
|
||||
dpkg_data=$(dpkg-query -s vesta)
|
||||
pkg_date=$(stat -c "%Y" /var/lib/dpkg/info/vesta.list)
|
||||
ARCH=$(echo "$dpkg_data"|grep Architecture | cut -f 2 -d ' ')
|
||||
ARCH=$(echo "$dpkg_data"|grep Architecture |cut -f 2 -d ' ')
|
||||
VERSION=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 1 -d \-)
|
||||
RELEASE=$(echo "$dpkg_data"|grep ^Version |cut -f 2 -d ' '|cut -f 2 -d \-)
|
||||
DATE=$(date -d @$pkg_date +"%F")
|
||||
TIME=$(date -d @$pkg_date +"%T")
|
||||
fi
|
||||
latest=$(grep vesta $tmp_file)
|
||||
UPDATED='yes'
|
||||
if [ ! -z "$latest" ] && [ "$latest" != "vesta-$VERSION-$RELEASE" ]; then
|
||||
UPDATED='no'
|
||||
set_upd_flag='yes'
|
||||
fi
|
||||
str="NAME='vesta' VERSION='$VERSION' RELEASE='$RELEASE' ARCH='$ARCH'"
|
||||
str="$str UPDATED='$UPDATED' DESCR='core package' TIME='$TIME' DATE='$DATE'"
|
||||
data="NAME='vesta' VERSION='$VERSION' RELEASE='$RELEASE' ARCH='$ARCH'"
|
||||
data="$data UPDATED='$UPDATED' DESCR='core package' TIME='$TIME' DATE='$DATE'"
|
||||
|
||||
# Check vesta-php version
|
||||
# Checking installed vesta-php version
|
||||
if [ -e "/etc/redhat-release" ]; then
|
||||
eval $(rpm --queryformat="$rpm_format" -q vesta-php)
|
||||
DATE=$(date -d @$UTIME +%F)
|
||||
|
@ -70,17 +101,11 @@ else
|
|||
DATE=$(date -d @$pkg_date +"%F")
|
||||
TIME=$(date -d @$pkg_date +"%T")
|
||||
fi
|
||||
latest=$(grep php $tmp_file)
|
||||
UPDATED='yes'
|
||||
if [ ! -z "$latest" ] && [ "$latest" != "php-$VERSION-$RELEASE" ]; then
|
||||
UPDATED='no'
|
||||
set_upd_flag='yes'
|
||||
fi
|
||||
str="$str\nNAME='vesta-php' VERSION='$VERSION' RELEASE='$RELEASE' ARCH='$ARCH'"
|
||||
str="$str UPDATED='$UPDATED' DESCR='php interpreter' TIME='$TIME'"
|
||||
str="$str DATE='$DATE'"
|
||||
data="$data\nNAME='vesta-php' VERSION='$VERSION' RELEASE='$RELEASE'"
|
||||
data="$data ARCH='$ARCH' UPDATED='$UPDATED' DESCR='php interpreter'"
|
||||
data="$data TIME='$TIME' DATE='$DATE'"
|
||||
|
||||
# Check vesta-nginx version
|
||||
# Checking installed vesta-nginx version
|
||||
if [ -e "/etc/redhat-release" ]; then
|
||||
eval $(rpm --queryformat="$rpm_format" -q vesta-nginx)
|
||||
DATE=$(date -d @$UTIME +%F)
|
||||
|
@ -94,39 +119,19 @@ else
|
|||
DATE=$(date -d @$pkg_date +"%F")
|
||||
TIME=$(date -d @$pkg_date +"%T")
|
||||
fi
|
||||
latest=$(grep nginx $tmp_file)
|
||||
UPDATED='yes'
|
||||
if [ ! -z "$latest" ] && [ "$latest" != "nginx-$VERSION-$RELEASE" ]; then
|
||||
UPDATED='no'
|
||||
set_upd_flag='yes'
|
||||
fi
|
||||
str="$str\nNAME='vesta-nginx' VERSION='$VERSION' RELEASE='$RELEASE'"
|
||||
str="$str ARCH='$ARCH' UPDATED='$UPDATED' DESCR='internal web server'"
|
||||
str="$str TIME='$TIME' DATE='$DATE'"
|
||||
data="$data\nNAME='vesta-nginx' VERSION='$VERSION' RELEASE='$RELEASE'"
|
||||
data="$data ARCH='$ARCH' UPDATED='$UPDATED' DESCR='internal web server'"
|
||||
data="$data TIME='$TIME' DATE='$DATE'"
|
||||
|
||||
# Create flag if updates avaiable
|
||||
if [ "$set_upd_flag" == 'yes' ]; then
|
||||
touch $VESTA/web/.update
|
||||
chmod a+r $VESTA/web/.update
|
||||
fi
|
||||
|
||||
# Defining config
|
||||
echo -e "$str" > $tmp_file
|
||||
conf=$tmp_file
|
||||
|
||||
# Defining fileds to select
|
||||
fields="\$NAME \$VERSION \$RELEASE \$ARCH \$UPDATED \$DESCR \$TIME \$DATE"
|
||||
|
||||
# Listing services
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) nohead=1; shell_list ;;
|
||||
shell) fields='$NAME $VERSION $RELEASE $ARCH $UPDATED $TIME $DATE'
|
||||
shell_list | column -t ;;
|
||||
*) check_args '1' '0' 'USER [FORMAT]'
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t;;
|
||||
esac
|
||||
|
||||
rm -f $tmp_file
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Vesta #
|
||||
|
|
201
bin/v-list-user
201
bin/v-list-user
|
@ -1,57 +1,151 @@
|
|||
#!/bin/bash
|
||||
# info: list system user
|
||||
# info: list user parameters
|
||||
# options: USER [FORMAT]
|
||||
#
|
||||
# The function for obtaining the list of all user's parameters.
|
||||
# The function to obtain user parameters.
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Variable&Function #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Argument definition
|
||||
user=$1
|
||||
format=${2-shell}
|
||||
|
||||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Argument definition
|
||||
user=$1
|
||||
USER="$user"
|
||||
format=${2-shell}
|
||||
|
||||
# Json function
|
||||
json_list_user() {
|
||||
i=1
|
||||
fileds_count=$(echo "$fields" | wc -w)
|
||||
source $VESTA/data/users/$user/user.conf
|
||||
echo '{'
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ "$i" -eq 1 ]; then
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ "$fileds_count" -eq "$i" ]; then
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
|
||||
fi
|
||||
fi
|
||||
(( ++i))
|
||||
done
|
||||
if [ -n "$value" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
echo -e "}"
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '{
|
||||
"'$USER'": {
|
||||
"FNAME": "'$FNAME'",
|
||||
"LNAME": "'$LNAME'",
|
||||
"PACKAGE": "'$PACKAGE'",
|
||||
"WEB_TEMPLATE": "'$WEB_TEMPLATE'",
|
||||
"BACKEND_TEMPLATE": "'$BACKEND_TEMPLATE'",
|
||||
"PROXY_TEMPLATE": "'$PROXY_TEMPLATE'",
|
||||
"DNS_TEMPLATE": "'$DNS_TEMPLATE'",
|
||||
"WEB_DOMAINS": "'$WEB_DOMAINS'",
|
||||
"WEB_ALIASES": "'$WEB_ALIASES'",
|
||||
"DNS_DOMAINS": "'$DNS_DOMAINS'",
|
||||
"DNS_RECORDS": "'$DNS_RECORDS'",
|
||||
"MAIL_DOMAINS": "'$MAIL_DOMAINS'",
|
||||
"MAIL_ACCOUNTS": "'$MAIL_ACCOUNTS'",
|
||||
"DATABASES": "'$DATABASES'",
|
||||
"CRON_JOBS": "'$CRON_JOBS'",
|
||||
"DISK_QUOTA": "'$DISK_QUOTA'",
|
||||
"BANDWIDTH": "'$BANDWIDTH'",
|
||||
"HOME": "'$HOME'",
|
||||
"NS": "'$NS'",
|
||||
"SHELL": "'$SHELL'",
|
||||
"BACKUPS": "'$BACKUPS'",
|
||||
"CONTACT": "'$CONTACT'",
|
||||
"CRON_REPORTS": "'$CRON_REPORTS'",
|
||||
"RKEY": "'$RKEY'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"SUSPENDED_USERS": "'$SUSPENDED_USERS'",
|
||||
"SUSPENDED_WEB": "'$SUSPENDED_WEB'",
|
||||
"SUSPENDED_DNS": "'$SUSPENDED_DNS'",
|
||||
"SUSPENDED_MAIL": "'$SUSPENDED_MAIL'",
|
||||
"SUSPENDED_DB": "'$SUSPENDED_DB'",
|
||||
"SUSPENDED_CRON": "'$SUSPENDED_CRON'",
|
||||
"IP_AVAIL": "'$IP_AVAIL'",
|
||||
"IP_OWNED": "'$IP_OWNED'",
|
||||
"U_USERS": "'$U_USERS'",
|
||||
"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_WEB_DOMAINS": "'$U_WEB_DOMAINS'",
|
||||
"U_WEB_SSL": "'$U_WEB_SSL'",
|
||||
"U_WEB_ALIASES": "'$U_WEB_ALIASES'",
|
||||
"U_DNS_DOMAINS": "'$U_DNS_DOMAINS'",
|
||||
"U_DNS_RECORDS": "'$U_DNS_RECORDS'",
|
||||
"U_MAIL_DOMAINS": "'$U_MAIL_DOMAINS'",
|
||||
"U_MAIL_DKIM": "'$U_MAIL_DKIM'",
|
||||
"U_MAIL_ACCOUNTS": "'$U_MAIL_ACCOUNTS'",
|
||||
"U_DATABASES": "'$U_DATABASES'",
|
||||
"U_CRON_JOBS": "'$U_CRON_JOBS'",
|
||||
"U_BACKUPS": "'$U_BACKUPS'",
|
||||
"LANGUAGE": "'$LANGUAGE'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}
|
||||
}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_user() {
|
||||
source $VESTA/data/users/$user/user.conf
|
||||
for field in $fields; do
|
||||
eval key="$field"
|
||||
if [ -z "$key" ]; then
|
||||
key='NULL'
|
||||
fi
|
||||
echo "${field//$/}: $key "
|
||||
done
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "USERNAME: $USER"
|
||||
echo "FULL NAME: $FNAME $LNAME"
|
||||
echo "EMAIL: $CONTACT"
|
||||
echo "LANGUAGE: $LANGUAGE"
|
||||
echo "SUSPENDED: $SUSPENDED"
|
||||
echo "PACKAGE: $PACKAGE"
|
||||
echo "SHELL: $SHELL"
|
||||
echo "WEB DOMAINS: $U_WEB_DOMAINS/$WEB_DOMAINS"
|
||||
echo "WEB ALIASES: $U_WEB_ALIASES/$WEB_ALIASES"
|
||||
echo "DNS DOMAINS: $U_DNS_DOMAINS/$DNS_DOMAINS"
|
||||
echo "DNS RECORDS: $U_DNS_RECORDS/$DNS_RECORDS"
|
||||
echo "MAIL DOMAINS: $U_MAIL_DOMAINS/$MAIL_DOMAINS"
|
||||
echo "MAIL ACCOUNTS: $U_MAIL_ACCOUNTS/$MAIL_ACCOUNTS"
|
||||
echo "BACKUPS: $U_BACKUPS/$BACKUPS"
|
||||
echo "DATABASES: $U_DATABASES/$DATABASES"
|
||||
echo "CRON_JOBS: $U_CRON_JOBS/$CRON_JOBS"
|
||||
echo "DISK: $U_DISK/$DISK_QUOTA"
|
||||
echo "BANDWIDTH: $U_BANDWIDTH/$BANDWIDTH"
|
||||
echo "IP ADDRESSES $IP_AVAIL/$IP_OWNED"
|
||||
echo "TIME: $TIME"
|
||||
echo "DATE: $DATE"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo -ne "$USER\t$FNAME\t$LNAME\t$PACKAGE\t$WEB_TEMPLATE\t"
|
||||
echo -ne "$BACKEND_TEMPLATE\t$PROXY_TEMPLATE\t$DNS_TEMPLATE\t"
|
||||
echo -ne "$WEB_DOMAINS\t$WEB_ALIASES\t$DNS_DOMAINS\t$DNS_RECORDS\t"
|
||||
echo -ne "$MAIL_DOMAINS\t$MAIL_ACCOUNTS\t$DATABASES\t$CRON_JOBS\t"
|
||||
echo -ne "$DISK_QUOTA\t$BANDWIDTH\t$NS\t$HOME\t$SHELL\t$BACKUPS\t"
|
||||
echo -ne "$CONTACT\t$CRON_REPORTS\t$RKEY\t$SUSPENDED\t"
|
||||
echo -ne "$SUSPENDED_USERS\t$SUSPENDED_WEB\t$SUSPENDED_DNS\t"
|
||||
echo -ne "$SUSPENDED_MAIL\t$SUSPENDED_DB\t$SUSPENDED_CRON\t"
|
||||
echo -ne "$IP_AVAIL\t$IP_OWNED\t$U_USERS\t$U_DISK\t$U_DISK_DIRS\t"
|
||||
echo -ne "$U_DISK_WEB\t$U_DISK_MAIL\t$U_DISK_DB\t$U_BANDWIDTH\t"
|
||||
echo -ne "$U_WEB_DOMAINS\t$U_WEB_SSL\t$U_WEB_ALIASES\t"
|
||||
echo -ne "$U_DNS_DOMAINS\t$U_DNS_RECORDS\t$U_MAIL_DOMAINS\t"
|
||||
echo -ne "$U_MAIL_DKIM\t$U_MAIL_ACCOUNTS\t$U_DATABASES\t"
|
||||
echo -e "'$U_CRON_JOBS\t$U_BACKUPS\t$LANGUAGE\t$TIME\t$DATE"
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo -n "USER,FNAME,LNAME,PACKAGE,WEB_TEMPLATE,BACKEND_TEMPLATE,"
|
||||
echo -n "PROXY_TEMPLATE,DNS_TEMPLATE,WEB_DOMAINS,WEB_ALIASES,"
|
||||
echo -n "DNS_DOMAINS,DNS_RECORDS,MAIL_DOMAINS,MAIL_ACCOUNTS,"
|
||||
echo -n "DATABASES,CRON_JOBS,DISK_QUOTA,BANDWIDTH,NS,HOME,SHELL,"
|
||||
echo -n "BACKUPS,CONTACT,CRON_REPORTS,RKEY,SUSPENDED,SUSPENDED_USERS,"
|
||||
echo -n "SUSPENDED_WEB,SUSPENDED_DNS,SUSPENDED_MAIL,SUSPENDED_DB,"
|
||||
echo -n "SUSPENDED_CRON,IP_AVAIL,IP_OWNED,U_USERS,U_DISK,U_DISK_DIRS,"
|
||||
echo -n "U_DISK_WEB,U_DISK_MAIL,U_DISK_DB,U_BANDWIDTH,U_WEB_DOMAINS,"
|
||||
echo -n "U_WEB_SSL,U_WEB_ALIASES,U_DNS_DOMAINS,U_DNS_RECORDS,"
|
||||
echo -n "U_MAIL_DOMAINS,U_MAIL_DKIM,U_MAIL_ACCOUNTS,U_DATABASES"
|
||||
echo "U_CRON_JOBS,U_BACKUPS,LANGUAGE,TIME,DATE"
|
||||
echo -n "$USER,\"$FNAME\",\"$LNAME\",$PACKAGE,$WEB_TEMPLATE,"
|
||||
echo -n "$BACKEND_TEMPLATE,$PROXY_TEMPLATE,$DNS_TEMPLATE,$WEB_DOMAINS,"
|
||||
echo -n "$WEB_ALIASES,$DNS_DOMAINS,$DNS_RECORDS,$MAIL_DOMAINS,"
|
||||
echo -n "$MAIL_ACCOUNTS,$DATABASES,$CRON_JOBS,$DISK_QUOTA,$BANDWIDTH,"
|
||||
echo -n "\"$NS\",$HOME,$SHELL,$BACKUPS,$CONTACT,$CRON_REPORTS,\"$RKEY\","
|
||||
echo -n "$SUSPENDED,$SUSPENDED_USERS,$SUSPENDED_WEB,$SUSPENDED_DNS,"
|
||||
echo -n "$SUSPENDED_MAIL,$SUSPENDED_DB,$SUSPENDED_CRON,$IP_AVAIL,"
|
||||
echo -n "$IP_OWNED,$U_USERS,$U_DISK,$U_DISK_DIRS,$U_DISK_WEB,"
|
||||
echo -n "$U_DISK_MAIL,$U_DISK_DB,$U_BANDWIDTH,$U_WEB_DOMAINS,$U_WEB_SSL,"
|
||||
echo -n "$U_WEB_ALIASES,$U_DNS_DOMAINS,$U_DNS_RECORDS,$U_MAIL_DOMAINS,"
|
||||
echo -n "$U_MAIL_DKIM,$U_MAIL_ACCOUNTS,$U_DATABASES,$U_CRON_JOBS,"
|
||||
echo "$U_BACKUPS,$LANGUAGE,$TIME,$DATE"
|
||||
}
|
||||
|
||||
|
||||
|
@ -60,7 +154,6 @@ shell_list_user() {
|
|||
#----------------------------------------------------------#
|
||||
|
||||
check_args '1' "$#" 'USER [FORMAT]'
|
||||
validate_format 'user'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
|
||||
|
||||
|
@ -69,26 +162,16 @@ is_object_valid 'user' 'USER' "$user"
|
|||
#----------------------------------------------------------#
|
||||
|
||||
# Defining config
|
||||
conf=$USER_DATA/user.conf
|
||||
USER=$user
|
||||
HOME=$HOMEDIR/$user
|
||||
source $VESTA/data/users/$user/user.conf
|
||||
|
||||
# Defining fileds to select
|
||||
fields='$USER $FNAME $LNAME $PACKAGE $WEB_TEMPLATE $BACKEND_TEMPLATE
|
||||
$PROXY_TEMPLATE $DNS_TEMPLATE $WEB_DOMAINS $WEB_ALIASES $DNS_DOMAINS
|
||||
$DNS_RECORDS $MAIL_DOMAINS $MAIL_ACCOUNTS $DATABASES $CRON_JOBS
|
||||
$DISK_QUOTA $BANDWIDTH $NS $SHELL $BACKUPS $CONTACT $CRON_REPORTS
|
||||
$RKEY $SUSPENDED $SUSPENDED_USERS $SUSPENDED_WEB $SUSPENDED_DNS
|
||||
$SUSPENDED_MAIL $SUSPENDED_DB $SUSPENDED_CRON $IP_AVAIL $IP_OWNED
|
||||
$U_USERS $U_DISK $U_DISK_DIRS $U_DISK_WEB $U_DISK_MAIL $U_DISK_DB
|
||||
$U_BANDWIDTH $U_WEB_DOMAINS $U_WEB_SSL $U_WEB_ALIASES $U_DNS_DOMAINS
|
||||
$U_DNS_RECORDS $U_MAIL_DOMAINS $U_MAIL_DKIM $U_MAIL_ACCOUNTS $U_DATABASES
|
||||
$U_CRON_JOBS $U_BACKUPS $LANGUAGE $HOME $NOTIFICATIONS $TIME $DATE'
|
||||
|
||||
# Listing user
|
||||
case $format in
|
||||
json) json_list_user ;;
|
||||
plain) nohead=1; shell_list_user ;;
|
||||
shell) shell_list_user | column -t ;;
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -18,57 +18,55 @@ format=${3-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_backup() {
|
||||
i=1
|
||||
fileds_count=$(echo "$fields" | wc -w)
|
||||
line=$(grep "BACKUP='$backup'" $conf)
|
||||
fields="\$BACKUP \$TYPE \$SIZE \$WEB \$DNS \$DB \$MAIL \$CRON \$UDIR"
|
||||
fields="$fields \$RUNTIME \$TIME \$DATE"
|
||||
|
||||
# Print top bracket
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '{'
|
||||
|
||||
# Assing key=value
|
||||
eval $line
|
||||
|
||||
# Starting output loop
|
||||
for field in $fields; do
|
||||
# Parsing key=value
|
||||
eval value=$field
|
||||
|
||||
# Checking first field
|
||||
if [ "$i" -eq 1 ]; then
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ "$fileds_count" -eq "$i" ]; then
|
||||
echo -e "\t\t\"${field//$/}\": \"$value\""
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"$value\","
|
||||
fi
|
||||
fi
|
||||
# Updating iterator
|
||||
(( ++i))
|
||||
done
|
||||
|
||||
# If there was any output
|
||||
if [ -n "$value" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
# Printing bottom json bracket
|
||||
echo -e "}"
|
||||
echo ' "'$BACKUP'": {
|
||||
"TYPE": "'$TYPE'",
|
||||
"SIZE": "'$SIZE'",
|
||||
"WEB": "'$WEB'",
|
||||
"DNS": "'$DNS'",
|
||||
"MAIL": "'$MAIL'",
|
||||
"DB": "'$DB'",
|
||||
"CRON": "'$CRON'",
|
||||
"UDIR": "'$UDIR'",
|
||||
"RUNTIME": "'$RUNTIME'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_backup() {
|
||||
line=$(grep "BACKUP='$backup'" $conf)
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "BACKUP: $BACKUP"
|
||||
echo "TYPE: $TYPE"
|
||||
echo "SIZE: $SIZE mb"
|
||||
echo "RUNTIME: $RUNTIME min"
|
||||
echo "WEB: ${WEB//,/ }"
|
||||
echo "DNS: ${DNS//,/ }"
|
||||
echo "MAIL: ${MAIL//,/ }"
|
||||
echo "DB: ${DB//,/ }"
|
||||
echo "CRON: $CRON"
|
||||
echo "UDIR: ${UDIR//,/ }"
|
||||
echo "TIME: $TIME"
|
||||
echo "DATE: $DATE"
|
||||
}
|
||||
|
||||
# Parsing key=value
|
||||
eval $line
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo -ne "$BACKUP\t$TYPE\t$SIZE\t$WEB\t$DNS\t$MAIL\t$DB\t$CRON\t"
|
||||
echo -e "$UDIR\t$RUNTIME\t$TIME\t$DATE"
|
||||
}
|
||||
|
||||
# Print result line
|
||||
for field in $fields; do
|
||||
eval key="$field"
|
||||
echo "${field//$/}: $key "
|
||||
done
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "BACKUP,TYPE,SIZE,WEB,DNS,MAIL,DB,CRON,UDIR,RUNTIME,TIME,DATE"
|
||||
echo -n "$BACKUP,$TYPE,$SIZE,\"$WEB\",\"$DNS\",\"$MAIL\",\"$DB\","
|
||||
echo "\"$CRON\",\"$UDIR\",$RUNTIME,$TIME,$DATE"
|
||||
}
|
||||
|
||||
|
||||
|
@ -85,18 +83,15 @@ is_object_valid 'backup' 'BACKUP' "$backup"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining config and fields to select
|
||||
conf=$USER_DATA/backup.conf
|
||||
# Parsing backup config
|
||||
eval $(grep "BACKUP='$backup'" $USER_DATA/backup.conf)
|
||||
|
||||
fields="\$BACKUP \$TYPE \$SIZE \$WEB \$DNS \$DB \$MAIL \$CRON \$UDIR"
|
||||
fields="$fields \$RUNTIME \$TIME \$DATE"
|
||||
|
||||
# Listing backup
|
||||
case $format in
|
||||
json) json_list_backup ;;
|
||||
plain) nohead=1; shell_list_backup ;;
|
||||
shell) shell_list_backup |column -t ;;
|
||||
*) check_args '2' '0' 'USER BACKUP [FORMAT]'
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -12,52 +12,134 @@
|
|||
# Argument definition
|
||||
user=$1
|
||||
format=${2-shell}
|
||||
USER=''
|
||||
|
||||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_backup_xld() {
|
||||
set -f
|
||||
echo '{'
|
||||
fields_count=$(echo "$fields" | wc -w)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
i=1
|
||||
source $USER_DATA/backup-excludes.conf
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
echo '{'
|
||||
echo ' "WEB": {'
|
||||
objects=$(echo "${WEB//,/ }" |wc -w)
|
||||
for object in $(echo "${WEB//,/ }"); do
|
||||
j=1
|
||||
echo -e "\t\"${field//$/}\": {"
|
||||
for exlcude in ${value//,/ }; do
|
||||
exlcude_obj=$(echo $exlcude |cut -f 1 -d:)
|
||||
exclude_param=$(echo $exlcude |sed -e "s/$exlcude_obj://")
|
||||
if [ "$exlcude_obj" = "$exclude_param" ]; then
|
||||
exclude_param=''
|
||||
fi
|
||||
if [ $j -lt "$(echo ${value//,/ } |wc -w)" ]; then
|
||||
echo -e "\t\t\"$exlcude_obj\": \"$exclude_param\","
|
||||
object_keys=$(echo ${object//:/ } |wc -w)
|
||||
for key in $(echo "${object/:/ }"); do
|
||||
if [ "$j" -eq 1 ]; then
|
||||
echo -n " \"$key\": "
|
||||
if [ "$object_keys" -eq 1 ]; then
|
||||
echo -n '""'
|
||||
fi
|
||||
else
|
||||
echo -e "\t\t\"$exlcude_obj\": \"$exclude_param\""
|
||||
echo -n "\"${key//:/,}\""
|
||||
fi
|
||||
(( ++j))
|
||||
((j++))
|
||||
done
|
||||
if [ $i -lt $fields_count ]; then
|
||||
echo -e "\t},"
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo -e "\t}"
|
||||
echo
|
||||
fi
|
||||
(( ++i))
|
||||
((i++))
|
||||
done
|
||||
echo ' },'
|
||||
i=1
|
||||
echo ' "MAIL": {'
|
||||
objects=$(echo "${MAIL//,/ }" |wc -w)
|
||||
for object in $(echo "${MAIL//,/ }"); do
|
||||
j=1
|
||||
object_keys=$(echo ${object//:/ } |wc -w)
|
||||
for key in $(echo "${object/:/ }"); do
|
||||
if [ "$j" -eq 1 ]; then
|
||||
echo -n " \"$key\": "
|
||||
if [ "$object_keys" -eq 1 ]; then
|
||||
echo -n '""'
|
||||
fi
|
||||
else
|
||||
echo -n "\"${key//:/,}\""
|
||||
fi
|
||||
((j++))
|
||||
done
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
((i++))
|
||||
done
|
||||
echo ' },'
|
||||
i=1
|
||||
echo ' "DB": {'
|
||||
objects=$(echo "${DB//,/ }" |wc -w)
|
||||
for object in $(echo "${DB//,/ }"); do
|
||||
j=1
|
||||
object_keys=$(echo ${object//:/ } |wc -w)
|
||||
for key in $(echo "${object/:/ }"); do
|
||||
if [ "$j" -eq 1 ]; then
|
||||
echo -n " \"$key\": "
|
||||
if [ "$object_keys" -eq 1 ]; then
|
||||
echo -n '""'
|
||||
fi
|
||||
else
|
||||
echo -n "\"${key//:/,}\""
|
||||
fi
|
||||
((j++))
|
||||
done
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
((i++))
|
||||
done
|
||||
echo ' },'
|
||||
i=1
|
||||
echo ' "USER": {'
|
||||
objects=$(echo "${USER//,/ }" |wc -w)
|
||||
for object in $(echo "${USER//,/ }"); do
|
||||
j=1
|
||||
object_keys=$(echo ${object//:/ } |wc -w)
|
||||
for key in $(echo "${object/:/ }"); do
|
||||
if [ "$j" -eq 1 ]; then
|
||||
echo -n " \"$key\": "
|
||||
if [ "$object_keys" -eq 1 ]; then
|
||||
echo -n '""'
|
||||
fi
|
||||
else
|
||||
echo -n "\"${key//:/,}\""
|
||||
fi
|
||||
((j++))
|
||||
done
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
((i++))
|
||||
done
|
||||
echo ' }'
|
||||
echo '}'
|
||||
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_backup_xld() {
|
||||
source $USER_DATA/backup-excludes.conf
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
echo -e "${field//$/}: $value"
|
||||
done
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "WEB: $WEB"
|
||||
echo "MAIL: $MAIL"
|
||||
echo "DB: $DB"
|
||||
echo "USER DIRS: $USER"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo "$WEB\t$MAIL\t$DB\t$USER"
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "WEB,MAIL,DB,USER"
|
||||
echo "\"$WEB\",\"$MAIL\",\"$DB\",\"$USER\""
|
||||
}
|
||||
|
||||
|
||||
|
@ -66,7 +148,7 @@ shell_list_backup_xld() {
|
|||
#----------------------------------------------------------#
|
||||
|
||||
check_args '1' "$#" 'USER [FORMAT]'
|
||||
validate_format 'user'
|
||||
is_format_valid 'user'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
|
||||
|
||||
|
@ -74,24 +156,23 @@ is_object_valid 'user' 'USER' "$user"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Flush variables
|
||||
# Flushing variables
|
||||
WEB=''
|
||||
DNS=''
|
||||
MAIL=''
|
||||
DB=''
|
||||
CRON=''
|
||||
USER=''
|
||||
|
||||
# Defining fileds to select
|
||||
touch $USER_DATA/backup-excludes.conf
|
||||
fields="\$WEB \$DNS \$MAIL \$DB \$CRON \$USER"
|
||||
# Parsing backup exclusion list
|
||||
if [ -e "$USER_DATA/backup-excludes.conf" ]; then
|
||||
source $USER_DATA/backup-excludes.conf
|
||||
fi
|
||||
|
||||
# Listing backup exclusions
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list_backup_xld ;;
|
||||
plain) nohead=1; shell_list_backup_xld ;;
|
||||
shell) shell_list_backup_xld;;
|
||||
*) check_args '1' '0' '[FORMAT]'
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -16,12 +16,76 @@ format=${2-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=$(grep BACKUP $USER_DATA/backup.conf |wc -l)
|
||||
echo "{"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n ' "'$BACKUP'": {
|
||||
"TYPE": "'$TYPE'",
|
||||
"SIZE": "'$SIZE'",
|
||||
"WEB": "'$WEB'",
|
||||
"DNS": "'$DNS'",
|
||||
"MAIL": "'$MAIL'",
|
||||
"DB": "'$DB'",
|
||||
"CRON": "'$CRON'",
|
||||
"UDIR": "'$UDIR'",
|
||||
"RUNTIME": "'$RUNTIME'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
((i++))
|
||||
done < <(cat $USER_DATA/backup.conf)
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
IFS=$'\n'
|
||||
echo "BACKUP TYPE SIZE TIME DATE"
|
||||
echo "------ ---- --- ---- ----"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo "$BACKUP $TYPE $SIZE $RUNTIME $DATE"
|
||||
done < <(cat $USER_DATA/backup.conf)
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
IFS=$'\n'
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -ne "$BACKUP\t$TYPE\t$SIZE\t$WEB\t$DNS\t$MAIL\t$CRON\t$UDIR\t"
|
||||
echo -e "$RUNTIME\t$TIME\t$DATE"
|
||||
done < <(cat $USER_DATA/backup.conf)
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
IFS=$'\n'
|
||||
echo "BACKUP,TYPE,SIZE,WEB,DNS,MAIL,CRON,UDIR,RUNTIME,TIME,DATE"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n "$BACKUP,$TYPE,$SIZE,\"$WEB\",\"$DNS\",\"$MAIL\",\"$CRON\","
|
||||
echo "\"$UDIR\",$RUNTIME,$TIME,$DATE"
|
||||
done < <(cat $USER_DATA/backup.conf)
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
check_args '1' "$#" 'USER [FORMAT]'
|
||||
validate_format 'user'
|
||||
is_format_valid 'user'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
|
||||
|
||||
|
@ -35,17 +99,12 @@ if [ ! -e "$conf" ]; then
|
|||
touch $conf
|
||||
fi
|
||||
|
||||
# Defining fileds to select
|
||||
fields="\$BACKUP \$TYPE \$SIZE \$WEB \$DNS \$DB \$MAIL \$CRON \$UDIR"
|
||||
fields="$fields \$RUNTIME \$TIME \$DATE"
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) nohead=1; shell_list ;;
|
||||
shell) fields='$BACKUP $TYPE $SIZE $RUNTIME $TIME $DATE';
|
||||
shell_list |column -t;;
|
||||
*) check_args '1' '0' '[FORMAT]' ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -16,43 +16,55 @@ format=${2-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_favourites() {
|
||||
i=1
|
||||
fileds_count=$(echo "$fields" | wc -w)
|
||||
fvrt_data=$(cat $USER_DATA/favourites.conf 2>/dev/null)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '{'
|
||||
eval $fvrt_data
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ $i -eq 1 ]; then
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ $fileds_count -eq $i ]; then
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
|
||||
fi
|
||||
fi
|
||||
(( ++i))
|
||||
done
|
||||
#if [ -n "$value" ]; then
|
||||
echo -e ' }'
|
||||
#fi
|
||||
echo -e '}'
|
||||
echo ' "Favourites": {
|
||||
"USER": "'$USER'",
|
||||
"WEB": "'$WEB'",
|
||||
"DNS": "'$DN'",
|
||||
"DNS_REC": "'$DNS_REC'",
|
||||
"MAIL": "'$MAIL'",
|
||||
"MAIL_ACC": "'$MAIL_ACC'",
|
||||
"DB": "'$DB'",
|
||||
"CRON": "'$CRON'",
|
||||
"BACKUP": "'$BACKUP'",
|
||||
"IP": "'$IP'",
|
||||
"PACKAGE": "'$PACKAGE'",
|
||||
"FIREWALL": "'$FIREWALL'"
|
||||
}'
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_favourites() {
|
||||
line=$(cat $USER_DATA/favourites.conf 2>/dev/null)
|
||||
eval $line
|
||||
for field in $fields; do
|
||||
eval key="$field"
|
||||
if [ -z "$key" ]; then
|
||||
key='NULL'
|
||||
fi
|
||||
echo "${field//$/}: $key "
|
||||
done
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "USER: $USER"
|
||||
echo "WEB: $WEB"
|
||||
echo "DNS: $DNS"
|
||||
echo "DNS RECORD: $DNS_REC"
|
||||
echo "MAIL: $MAIL"
|
||||
echo "MAIL USER: $MAIL_ACC"
|
||||
echo "DATABASE: $DB"
|
||||
echo "CRON: $CRON"
|
||||
echo "BACKUP: $BACKUP"
|
||||
echo "IP: $IP"
|
||||
echo "PACKAGE: $PACKAGE"
|
||||
echo "FIREWALL: $FIREWALL"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo -ne "$USER\t$WEB\t$DNS\t$DNS_REC\t$MAIL\t$MAIL_ACC\t$DB\t$CRON\t"
|
||||
echo -e "$BACKUP\t$IP\t$PACKAGE\t$FIREWALL"
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo -n "USER,WEB,DNS,DNS_REC,MAIL,MAIL_ACC,DB,CRON,BACKUP,IP,"
|
||||
echo "PACKAGE,FIREWALL"
|
||||
echo -n "\"$USER\",\"$WEB\",\"$DNS\",\"$DNS_REC\",\"$MAIL\","
|
||||
echo -n "\"$MAIL_ACC\",\"$DB\",\"$CRON\",\"$BACKUP\",\"$IP\","
|
||||
echo "\"$PACKAGE\",\"$FIREWALL\""
|
||||
}
|
||||
|
||||
|
||||
|
@ -62,7 +74,7 @@ shell_list_favourites() {
|
|||
|
||||
# Checking args
|
||||
check_args '1' "$#" 'USER [FORMAT]'
|
||||
validate_format 'user'
|
||||
is_format_valid 'user'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
|
||||
|
||||
|
@ -84,17 +96,17 @@ IP=''
|
|||
PACKAGE=''
|
||||
FIREWALL=''
|
||||
|
||||
# Defining fileds to select
|
||||
OBJ='Favourites'
|
||||
fields='$OBJ $USER $WEB $DNS $DNS_REC $MAIL $MAIL_ACC $DB $CRON $BACKUP
|
||||
$IP $PACKAGE $FIREWALL'
|
||||
# Parsing user favourites
|
||||
if [ -e "$VESTA/data/users/$user/favourites.conf" ]; then
|
||||
source $VESTA/data/users/$user/favourites.conf
|
||||
fi
|
||||
|
||||
# Listing favourites
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list_favourites ;;
|
||||
plain) shell_list_favourites ;;
|
||||
shell) shell_list_favourites | column -t ;;
|
||||
*) check_args '1' '0' 'USER [FORMAT]'
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -16,89 +16,59 @@ format=${2-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_user_ips() {
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '{'
|
||||
fileds_count=$(echo "$fields" | wc -w)
|
||||
for IP in $(ls $VESTA/data/ips/); do
|
||||
ip_count=$(echo "$ips" |wc -l)
|
||||
i=1
|
||||
for IP in $ips; do
|
||||
source $VESTA/data/ips/$IP
|
||||
if [ "$OWNER" = "$user" ]; then
|
||||
if [ -n "$data" ]; then
|
||||
echo -e ' },'
|
||||
fi
|
||||
i=1
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ $i -eq 1 ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ $i -lt $fileds_count ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
|
||||
data=1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
echo -n ' "'$IP'": {
|
||||
"OWNER": "'$OWNER'",
|
||||
"STATUS": "'$STATUS'",
|
||||
"NAME": "'$NAME'",
|
||||
"NAT": "'$NAT'"
|
||||
}'
|
||||
if [ "$i" -lt "$ip_count" ]; then
|
||||
echo ','
|
||||
else
|
||||
if [ "$OWNER" = 'admin' ] && [ "$STATUS" = 'shared' ]; then
|
||||
if [ -n "$data" ]; then
|
||||
echo -e ' },'
|
||||
fi
|
||||
i=1
|
||||
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ $i -eq 1 ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ $i -lt $fileds_count ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
|
||||
data=1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
echo
|
||||
fi
|
||||
((i++))
|
||||
done
|
||||
if [ -n "$data" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
echo -e '}'
|
||||
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_user_ips() {
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "IP NAT OWNER STATUS NAME"
|
||||
echo "-- --- ----- ------ ---"
|
||||
for IP in $ips; do
|
||||
source $VESTA/data/ips/$IP
|
||||
if [ -z "$NAT" ]; then
|
||||
NAT='no'
|
||||
fi
|
||||
if [ -z "$NAME" ]; then
|
||||
NAME='no'
|
||||
fi
|
||||
echo "$IP $NAT $OWNER $STATUS $NAME"
|
||||
done
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
for IP in $ips; do
|
||||
source $VESTA/data/ips/$IP
|
||||
echo -e "$IP\t$OWNER\t$STATUS\t$NAME\t$NAT"
|
||||
done
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "IP,OWNER,STATUS,NAME,NAT"
|
||||
for IP in $(ls $VESTA/data/ips/); do
|
||||
source $VESTA/data/ips/$IP
|
||||
if [ "$OWNER" = "$user" ]; then
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ -z "$value" ]; then
|
||||
value='NULL'
|
||||
fi
|
||||
echo -n "$value "
|
||||
done
|
||||
echo
|
||||
else
|
||||
if [ "$OWNER" = 'admin' ] && [ "$STATUS" = 'shared' ]; then
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ -z "$value" ]; then
|
||||
value='NULL'
|
||||
fi
|
||||
echo -n "$value "
|
||||
done
|
||||
echo
|
||||
fi
|
||||
fi
|
||||
echo "$IP,$OWNER,$STATUS,$NAME,$NAT"
|
||||
done
|
||||
}
|
||||
|
||||
|
@ -108,7 +78,7 @@ shell_list_user_ips() {
|
|||
#----------------------------------------------------------#
|
||||
|
||||
check_args '1' "$#" 'USER [FORMAT]'
|
||||
validate_format 'user'
|
||||
is_format_valid 'user'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
|
||||
|
||||
|
@ -117,14 +87,21 @@ is_object_valid 'user' 'USER' "$user"
|
|||
#----------------------------------------------------------#
|
||||
|
||||
# Defining fileds to select
|
||||
owner='admin'
|
||||
owner_ips=$(grep -A 1 "OWNER='$owner'" $VESTA/data/ips/*)
|
||||
owner_ips=$(echo "$owner_ips" |grep "STATUS='shared'")
|
||||
owner_ips=$(echo "$owner_ips" |cut -f 7 -d / |cut -f 1 -d -)
|
||||
user_ips=$(grep "OWNER='$user'" $VESTA/data/ips/*)
|
||||
user_ips=$(echo "$user_ips" |cut -f 7 -d / |cut -f 1 -d :)
|
||||
ips=$(echo -e "$user_ips\n$owner_ips" |sort -u |sed "/^$/d")
|
||||
fields='$IP $OWNER $STATUS $NAME $NAT'
|
||||
|
||||
# Listing ips
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list_user_ips ;;
|
||||
plain) nohead=1; shell_list_user_ips ;;
|
||||
shell) shell_list_user_ips | column -t ;;
|
||||
*) check_args '1' '0' 'USER [FORMAT]' ;;
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -16,48 +16,71 @@ format=${2-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json func
|
||||
json_list_history() {
|
||||
echo '{'
|
||||
fileds_count=$(echo $fields| wc -w )
|
||||
while read line; do
|
||||
IFS=$'\n'
|
||||
eval $line
|
||||
if [ -n "$data" ]; then
|
||||
echo -e ' },'
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=$(echo "$logs" |wc -l)
|
||||
echo "{"
|
||||
for str in $logs; do
|
||||
eval $str
|
||||
echo -n ' "'$ID'": {
|
||||
"CMD": "'$CMD'",
|
||||
"UNDO": "'$UNDO'",
|
||||
"DATE": "'$DATE'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
i=1
|
||||
IFS=' '
|
||||
for field in $fields; do
|
||||
eval value=\"$field\"
|
||||
value=$(echo "$value" | sed -e 's/"/\\"/g' -e "s/%quote%/'/g")
|
||||
if [ $i -eq 1 ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ $i -lt $fileds_count ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
|
||||
data=1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
done < $conf
|
||||
if [ -n "$data" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
echo -e '}'
|
||||
((i++))
|
||||
done
|
||||
echo '}'
|
||||
}
|
||||
|
||||
shell_list() {
|
||||
IFS=$'\n'
|
||||
echo "DATE~TIME~CMD"
|
||||
echo "----~----~---"
|
||||
for str in $logs; do
|
||||
eval $str
|
||||
if [ -z "$DATE" ]; then
|
||||
DATE='no'
|
||||
fi
|
||||
if [ -z "$TIME" ]; then
|
||||
TIME='no'
|
||||
fi
|
||||
echo "$DATE~$TIME~$CMD"
|
||||
done
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
IFS=$'\n'
|
||||
for str in $logs; do
|
||||
eval $str
|
||||
echo -e "$ID\t$CMD\t$UNDO\t$TIME\t$DATE"
|
||||
done
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
IFS=$'\n'
|
||||
echo "ID,CMD,UNDO,TIME,DATE"
|
||||
for str in $logs; do
|
||||
eval $str
|
||||
echo "$ID,\"$CMD\",\"$UNDO\",$TIME,$DATE"
|
||||
done
|
||||
}
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
check_args '1' "$#" 'USER [FORMAT]'
|
||||
validate_format 'user'
|
||||
is_format_valid 'user'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
|
||||
|
||||
|
@ -65,19 +88,14 @@ is_object_valid 'user' 'USER' "$user"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining config
|
||||
conf=$USER_DATA/history.log
|
||||
# Parsing history log
|
||||
logs=$(tail -n 300 $USER_DATA/history.log 2>/dev/null)
|
||||
|
||||
# Defining fileds to select
|
||||
fields="\$ID \$DATE \$TIME \$CMD \$UNDO"
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
json) json_list_history ;;
|
||||
plain) nohead=1; shell_list ;;
|
||||
shell) fields='$ID~$DATE~$TIME~$CMD';
|
||||
shell_list |column -t -s '~';;
|
||||
*) check_args '1' '0' 'USER [FORMAT]'
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t -s '~';;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -16,50 +16,69 @@ format=${2-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_notifications() {
|
||||
echo '{'
|
||||
fileds_count=$(echo $fields| wc -w )
|
||||
while read line; do
|
||||
eval $line
|
||||
if [ -n "$data" ]; then
|
||||
echo -e ' },'
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=$(grep NID $USER_DATA/notifications.conf |wc -l)
|
||||
echo "{"
|
||||
while read str; do
|
||||
eval $str
|
||||
TOPIC=$(echo "$TOPIC" |sed -e "s/%quote%/'/g")
|
||||
NOTICE=$(echo "$NOTICE" |sed -e "s/%quote%/'/g")
|
||||
echo -n ' "'$NID'": {
|
||||
"TOPIC": "'$TOPIC'",
|
||||
"NOTICE": "'$NOTICE'",
|
||||
"TYPE": "'$TYPE'",
|
||||
"ACK": "'$ACK'",
|
||||
"TPL": "'$TPL'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
i=1
|
||||
IFS=' '
|
||||
for field in $fields; do
|
||||
eval value=\"$field\"
|
||||
value=$(echo "$value"|sed -e 's/"/\\"/g' -e "s/%quote%/'/g")
|
||||
if [ $i -eq 1 ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ $i -lt $fileds_count ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
|
||||
data=1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
done < $conf
|
||||
if [ -n "$data" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
echo -e '}'
|
||||
((i++))
|
||||
done < <(cat $USER_DATA/notifications.conf)
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_notifications() {
|
||||
while read line ; do
|
||||
eval $line
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
IFS=$'\n'
|
||||
while read str; do
|
||||
eval $str
|
||||
echo "$TOPIC" |sed -e "s/%quote%/'/g"
|
||||
echo "$NOTICE" |sed -e "s/%quote%/'/g"
|
||||
echo "$DATE $TIME"
|
||||
echo "--"
|
||||
echo
|
||||
done < $conf
|
||||
done < <(cat $USER_DATA/notifications.conf)
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
IFS=$'\n'
|
||||
while read str; do
|
||||
eval $str
|
||||
TOPIC=$(echo "$TOPIC" |sed -e "s/%quote%/'/g")
|
||||
NOTICE=$(echo "$NOTICE" |sed -e "s/%quote%/'/g")
|
||||
echo -e "$NID\t$TOPIC\t$NOTICE\t$TIME\t$DATE"
|
||||
done < <(cat $USER_DATA/notifications.conf)
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
IFS=$'\n'
|
||||
echo "NID,TOPIC,NOTICE,TIME,DATE"
|
||||
while read str; do
|
||||
eval $str
|
||||
TOPIC=$(echo "$TOPIC" |sed -e "s/%quote%/'/g")
|
||||
NOTICE=$(echo "$NOTICE" |sed -e "s/%quote%/'/g")
|
||||
echo "$NID,\"$TOPIC\",\"$NOTICE\",$TIME,$DATE"
|
||||
done < <(cat $USER_DATA/notifications.conf)
|
||||
}
|
||||
|
||||
|
||||
|
@ -69,7 +88,7 @@ shell_list_notifications() {
|
|||
|
||||
# Checking args
|
||||
check_args '1' "$#" 'USER [FORMAT]'
|
||||
validate_format 'user'
|
||||
is_format_valid 'user'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
|
||||
|
||||
|
@ -77,16 +96,12 @@ is_object_valid 'user' 'USER' "$user"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining fileds to select
|
||||
conf=$USER_DATA/notifications.conf
|
||||
fields='$NID $TOPIC $NOTICE $TYPE $ACK $TIME $DATE'
|
||||
|
||||
# Listing favourites
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list_notifications ;;
|
||||
plain) shell_list_notifications ;;
|
||||
shell) shell_list_notifications ;;
|
||||
*) check_args '1' '0' 'USER [FORMAT]'
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -16,30 +16,41 @@ format=${2-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_ns() {
|
||||
ns=$(grep "^NS='" $USER_DATA/user.conf |cut -f 2 -d \')
|
||||
echo '['
|
||||
# JSON list function
|
||||
json_list() {
|
||||
i=1
|
||||
nslistc=$(echo -e "${ns//,/\\n}"|wc -l)
|
||||
objects=$(echo -e "${ns//,/\\n}" |wc -l)
|
||||
echo '['
|
||||
for nameserver in ${ns//,/ };do
|
||||
if [ "$i" -ne "$nslistc" ]; then
|
||||
if [ "$i" -ne "$objects" ]; then
|
||||
echo -e "\t\"$nameserver\","
|
||||
else
|
||||
echo -e "\t\"$nameserver\""
|
||||
fi
|
||||
(( ++i))
|
||||
done
|
||||
echo "]"
|
||||
echo ']'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_ns() {
|
||||
ns=$(grep "^NS='" $USER_DATA/user.conf |cut -f 2 -d \')
|
||||
if [ -z "$nohead" ]; then
|
||||
echo "NAMESERVER"
|
||||
echo "----------"
|
||||
fi
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "NS"
|
||||
echo "--"
|
||||
for nameserver in ${ns//,/ };do
|
||||
echo "$nameserver"
|
||||
done
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
for nameserver in ${ns//,/ };do
|
||||
echo "$nameserver"
|
||||
done
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "NAMESERVER"
|
||||
for nameserver in ${ns//,/ };do
|
||||
echo "$nameserver"
|
||||
done
|
||||
|
@ -51,7 +62,7 @@ shell_list_ns() {
|
|||
#----------------------------------------------------------#
|
||||
|
||||
check_args '1' "$#" 'USER [FORMAT]'
|
||||
validate_format 'user'
|
||||
is_format_valid 'user'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
|
||||
|
||||
|
@ -59,12 +70,15 @@ is_object_valid 'user' 'USER' "$user"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Listing nameservers
|
||||
case $format in
|
||||
json) json_list_ns ;;
|
||||
plain) nohead=1; shell_list_ns ;;
|
||||
shell) shell_list_ns ;;
|
||||
*) check_args '1' '0' 'USER [FORMAT]'
|
||||
# Parsing name servers
|
||||
ns=$(grep "^NS='" $USER_DATA/user.conf |cut -f 2 -d \')
|
||||
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -17,43 +17,73 @@ format=${2-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_package() {
|
||||
i=1
|
||||
fileds_count=$(echo "$fields" | wc -w)
|
||||
pkg_data=$(cat $VESTA/data/packages/$PACKAGE.pkg)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '{'
|
||||
eval $pkg_data
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ $i -eq 1 ]; then
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ $fileds_count -eq $i ]; then
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
|
||||
fi
|
||||
fi
|
||||
(( ++i))
|
||||
done
|
||||
if [ -n "$value" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
echo -e '}'
|
||||
echo ' "'$PACKAGE'": {
|
||||
"WEB_TEMPLATE": "'$WEB_TEMPLATE'",
|
||||
"PROXY_TEMPLATE": "'$PROXY_TEMPLATE'",
|
||||
"DNS_TEMPLATE": "'$DNS_TEMPLATE'",
|
||||
"WEB_DOMAINS": "'$WEB_DOMAINS'",
|
||||
"WEB_ALIASES": "'$WEB_ALIASES'",
|
||||
"DNS_DOMAINS": "'$DNS_DOMAINS'",
|
||||
"DNS_RECORDS": "'$DNS_RECORDS'",
|
||||
"MAIL_DOMAINS": "'$MAIL_DOMAINS'",
|
||||
"MAIL_ACCOUNTS": "'$MAIL_ACCOUNTS'",
|
||||
"DATABASES": "'$DATABASES'",
|
||||
"CRON_JOBS": "'$CRON_JOBS'",
|
||||
"DISK_QUOTA": "'$DISK_QUOTA'",
|
||||
"BANDWIDTH": "'$BANDWIDTH'",
|
||||
"NS": "'$NS'",
|
||||
"SHELL": "'$SHELL'",
|
||||
"BACKUPS": "'$BACKUPS'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_package() {
|
||||
line=$(cat $VESTA/data/packages/$PACKAGE.pkg)
|
||||
eval $line
|
||||
for field in $fields; do
|
||||
eval key="$field"
|
||||
if [ -z "$key" ]; then
|
||||
key='NULL'
|
||||
fi
|
||||
echo "${field//$/}: $key "
|
||||
done
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "PACKAGE: $PACKAGE"
|
||||
echo "WEB TEMPLATE: $WEB_TEMPLATE"
|
||||
echo "PROXY TEMPLATE: $PROXY_TEMPLATE"
|
||||
echo "DNS TEMPLATE: $DNS_TEMPLATE"
|
||||
echo "WEB DOMAINS: $WEB_DOMAINS"
|
||||
echo "WEB ALIASES: $WEB_ALIASES"
|
||||
echo "DNS DOMAINS: $DNS_DOMAINS"
|
||||
echo "DNS RECORDS: $DNS_RECORDS"
|
||||
echo "MAIL DOMAINS: $MAIL_DOMAINS"
|
||||
echo "MAIL ACCOUNTS: $MAIL_ACCOUNTS"
|
||||
echo "DATABASES: $DATABASES"
|
||||
echo "CRON JOBS: $CRON_JOBS"
|
||||
echo "DISK QUOTA: $DISK_QUOTA"
|
||||
echo "BANDWIDTH: $BANDWIDTH"
|
||||
echo "NS: $NS"
|
||||
echo "SHELL: $SHELL"
|
||||
echo "BACKUPS: $BACKUPS"
|
||||
echo "TIME: $TIME"
|
||||
echo "DATE: $DATE"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo -ne "$PACKAGE\t$WEB_TEMPLATE\t$PROXY_TEMPLATE\t$DNS_TEMPLATE\t"
|
||||
echo -ne "$WEB_DOMAINS\t$WEB_ALIASES\t$DNS_DOMAINS\t$DNS_RECORDS\t"
|
||||
echo -ne "$MAIL_DOMAINS\t$MAIL_ACCOUNTS\t$DATABASES\t$CRON_JOBS\t"
|
||||
echo -e "$DISK_QUOTA\t$BANDWIDTH\t$NS\t$SHELL\t$BACKUPS\t$TIME\t$DATE"
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo -n "PACKAGE,WEB_TEMPLATE,PROXY_TEMPLATE,DNS_TEMPLATE,"
|
||||
echo -n "WEB_DOMAINS,WEB_ALIASES,DNS_DOMAINS,DNS_RECORDS,"
|
||||
echo -n "MAIL_DOMAINS,MAIL_ACCOUNTS,DATABASES,CRON_JOBS,"
|
||||
echo "DISK_QUOTA,BANDWIDTH,NS,SHELL,BACKUPS,TIME,DATE"
|
||||
echo -n "$PACKAGE,$WEB_TEMPLATE,$PROXY_TEMPLATE,$DNS_TEMPLATE,"
|
||||
echo -n "$WEB_DOMAINS,$WEB_ALIASES,$DNS_DOMAINS,$DNS_RECORDS,"
|
||||
echo -n "$MAIL_DOMAINS,$MAIL_ACCOUNTS,$DATABASES,$CRON_JOBS,"
|
||||
echo "$DISK_QUOTA,$BANDWIDTH,\"$NS\",$SHELL,$BACKUPS,$TIME,$DATE"
|
||||
}
|
||||
|
||||
|
||||
|
@ -63,7 +93,7 @@ shell_list_package() {
|
|||
|
||||
# Checking args
|
||||
check_args '1' "$#" 'PACKAGE [FORMAT]'
|
||||
validate_format 'package'
|
||||
is_format_valid 'package'
|
||||
is_package_valid
|
||||
|
||||
|
||||
|
@ -71,18 +101,15 @@ is_package_valid
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining fileds to select
|
||||
fields='$PACKAGE $WEB_TEMPLATE $PROXY_TEMPLATE $DNS_TEMPLATE $WEB_DOMAINS
|
||||
$WEB_ALIASES $DNS_DOMAINS $DNS_RECORDS $MAIL_DOMAINS $MAIL_ACCOUNTS
|
||||
$DATABASES $CRON_JOBS $DISK_QUOTA $BANDWIDTH $NS $SHELL $BACKUPS $TIME
|
||||
$DATE'
|
||||
# Parsing package
|
||||
source $VESTA/data/packages/$PACKAGE.pkg
|
||||
|
||||
# Listing ip
|
||||
case $format in
|
||||
json) json_list_package ;;
|
||||
plain) shell_list_package ;;
|
||||
shell) shell_list_package | column -t ;;
|
||||
*) check_args '1' '0' 'IP [FORMAT]'
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -15,53 +15,85 @@ format=${1-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_pkgs() {
|
||||
echo '{'
|
||||
fileds_count=$(echo "$fields" | wc -w)
|
||||
for package in $(ls --sort=time $VESTA/data/packages |grep .pkg); do
|
||||
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=$(echo "$packages" |wc -l)
|
||||
echo "{"
|
||||
for package in $packages; do
|
||||
PACKAGE=${package/.pkg/}
|
||||
pkg_data=$(cat $VESTA/data/packages/$package)
|
||||
eval $pkg_data
|
||||
if [ -n "$data" ]; then
|
||||
echo -e ' },'
|
||||
source $VESTA/data/packages/$package
|
||||
echo -n ' "'$PACKAGE'": {
|
||||
"WEB_TEMPLATE": "'$WEB_TEMPLATE'",
|
||||
"PROXY_TEMPLATE": "'$PROXY_TEMPLATE'",
|
||||
"DNS_TEMPLATE": "'$DNS_TEMPLATE'",
|
||||
"WEB_DOMAINS": "'$WEB_DOMAINS'",
|
||||
"WEB_ALIASES": "'$WEB_ALIASES'",
|
||||
"DNS_DOMAINS": "'$DNS_DOMAINS'",
|
||||
"DNS_RECORDS": "'$DNS_RECORDS'",
|
||||
"MAIL_DOMAINS": "'$MAIL_DOMAINS'",
|
||||
"MAIL_ACCOUNTS": "'$MAIL_ACCOUNTS'",
|
||||
"DATABASES": "'$DATABASES'",
|
||||
"CRON_JOBS": "'$CRON_JOBS'",
|
||||
"DISK_QUOTA": "'$DISK_QUOTA'",
|
||||
"BANDWIDTH": "'$BANDWIDTH'",
|
||||
"NS": "'$NS'",
|
||||
"SHELL": "'$SHELL'",
|
||||
"BACKUPS": "'$BACKUPS'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
i=1
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ $i -eq 1 ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ $i -lt $fileds_count ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
|
||||
data=1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
((i++))
|
||||
done
|
||||
if [ -n "$data" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
echo -e '}'
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell fnction
|
||||
shell_list_pkgs() {
|
||||
for package in $(ls -t $VESTA/data/packages |grep .pkg); do
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "PKG TPL WEB DNS MAIL DB SHELL DISK BW"
|
||||
echo "--- --- --- --- ---- -- ----- ---- --"
|
||||
for package in $packages; do
|
||||
source $VESTA/data/packages/$package
|
||||
PACKAGE=${package/.pkg/}
|
||||
pkg_descr=$(cat $VESTA/data/packages/$package)
|
||||
eval $pkg_descr
|
||||
if [ -z "$nohead" ]; then
|
||||
echo '----------'
|
||||
fi
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
echo -e "${field//$/}: $value"
|
||||
done
|
||||
package_data=$(cat $VESTA/data/packages/$package)
|
||||
package_data=$(echo "$package_data" |sed -e 's/unlimited/unlim/g')
|
||||
eval $package_data
|
||||
echo -n "$PACKAGE $WEB_TEMPLATE $WEB_DOMAINS $DNS_DOMAINS "
|
||||
echo "$MAIL_DOMAINS $DATABASES $SHELL $DISK_QUOTA $BANDWIDTH"
|
||||
done
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
for package in $packages; do
|
||||
source $VESTA/data/packages/$package
|
||||
PACKAGE=${package/.pkg/}
|
||||
echo -ne "$PACKAGE\t$WEB_TEMPLATE\t$PROXY_TEMPLATE\t$DNS_TEMPLATE\t"
|
||||
echo -ne "$WEB_DOMAINS\t$WEB_ALIASES\t$DNS_DOMAINS\t$DNS_RECORDS\t"
|
||||
echo -ne "$MAIL_DOMAINS\t$MAIL_ACCOUNTS\t$DATABASES\t$CRON_JOBS\t"
|
||||
echo -e "$DISK_QUOTA\t$BANDWIDTH\t$NS\t$SHELL\t$BACKUPS\t$TIME\t$DATE"
|
||||
done
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo -n "PACKAGE,WEB_TEMPLATE,PROXY_TEMPLATE,DNS_TEMPLATE,"
|
||||
echo -n "WEB_DOMAINS,WEB_ALIASES,DNS_DOMAINS,DNS_RECORDS,"
|
||||
echo -n "MAIL_DOMAINS,MAIL_ACCOUNTS,DATABASES,CRON_JOBS,"
|
||||
echo "DISK_QUOTA,BANDWIDTH,NS,SHELL,BACKUPS,TIME,DATE"
|
||||
for package in $packages; do
|
||||
PACKAGE=${package/.pkg/}
|
||||
echo -n "$PACKAGE,$WEB_TEMPLATE,$PROXY_TEMPLATE,$DNS_TEMPLATE,"
|
||||
echo -n "$WEB_DOMAINS,$WEB_ALIASES,$DNS_DOMAINS,$DNS_RECORDS,"
|
||||
echo -n "$MAIL_DOMAINS,$MAIL_ACCOUNTS,$DATABASES,$CRON_JOBS,"
|
||||
echo "$DISK_QUOTA,$BANDWIDTH,\"$NS\",$SHELL,$BACKUPS,$TIME,$DATE"
|
||||
done
|
||||
}
|
||||
|
||||
|
@ -70,18 +102,15 @@ shell_list_pkgs() {
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining fields
|
||||
fields='$PACKAGE $WEB_TEMPLATE $BACKEND_TEMPLATE $PROXY_TEMPLATE
|
||||
$DNS_TEMPLATE $WEB_DOMAINS $WEB_ALIASES $DNS_DOMAINS $DNS_RECORDS
|
||||
$MAIL_DOMAINS $MAIL_ACCOUNTS $DATABASES $CRON_JOBS $DISK_QUOTA $BANDWIDTH
|
||||
$NS $SHELL $BACKUPS $TIME $DATE'
|
||||
# Parsing packages
|
||||
packages=$(ls --sort=time $VESTA/data/packages |grep .pkg)
|
||||
|
||||
# Listing domains
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list_pkgs ;;
|
||||
plain) nohead=1; shell_list_pkgs ;;
|
||||
shell) shell_list_pkgs | column -t ;;
|
||||
*) check_args '1' '0' '[FORMAT]'
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/bash
|
||||
# info: list user stats
|
||||
# options: USER [FORMAT]
|
||||
# options: [FORMAT]
|
||||
#
|
||||
# The function for listing user statistics
|
||||
|
||||
|
@ -16,13 +16,105 @@ format=${2-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=$(grep DATE $USER_DATA/stats.log |wc -l)
|
||||
echo "{"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n ' "'$DATE'": {
|
||||
"TIME": "'$TIME'",
|
||||
"PACKAGE": "'$PACKAGE'",
|
||||
"IP_OWNED": "'$IP_OWNED'",
|
||||
"DISK_QUOTA": "'$DISK_QUOTA'",
|
||||
"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'",
|
||||
"BANDWIDTH": "'$BANDWIDTH'",
|
||||
"U_BANDWIDTH": "'$U_BANDWIDTH'",
|
||||
"U_WEB_DOMAINS": "'$U_WEB_DOMAINS'",
|
||||
"U_WEB_SSL": "'$U_WEB_SSL'",
|
||||
"U_WEB_ALIASES": "'$U_WEB_ALIASES'",
|
||||
"U_DNS_DOMAINS": "'$U_DNS_DOMAINS'",
|
||||
"U_DNS_RECORDS": "'$U_DNS_RECORDS'",
|
||||
"U_MAIL_DOMAINS": "'$U_MAIL_DOMAINS'",
|
||||
"U_MAIL_DKIM": "'$U_MAIL_DKIM'",
|
||||
"U_MAIL_ACCOUNTS": "'$U_MAIL_ACCOUNTS'",
|
||||
"U_DATABASES": "'$U_DATABASES'",
|
||||
"U_CRON_JOBS": "'$U_CRON_JOBS'",
|
||||
"U_BACKUPS": "'$U_BACKUPS'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
((i++))
|
||||
done < <(cat $USER_DATA/stats.log)
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
IFS=$'\n'
|
||||
echo "DATE WEB DNS MAIL DB BACKUPS IP DISK BW"
|
||||
echo "---- --- --- ---- -- ------- -- ---- --"
|
||||
while read str; do
|
||||
eval $str
|
||||
if [ -z "$U_USERS" ]; then
|
||||
U_USERS=1
|
||||
fi
|
||||
echo -n "$DATE $U_WEB_DOMAINS $U_DNS_DOMAINS "
|
||||
echo -n "$U_MAIL_DOMAINS $U_DATABASES $U_BACKUPS $IP_OWNED "
|
||||
echo "$U_DISK $U_BANDWIDTH"
|
||||
done < <(cat $USER_DATA/stats.log)
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
IFS=$'\n'
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -ne "$DATE\t$TIME\t$PACKAGE\t$IP_OWNED\t$DISK_QUOTA\t$U_DISK\t"
|
||||
echo -ne "$U_DISK_DIRS\t$U_DISK_WEB\t$U_DISK_MAIL\t$U_DISK_DB\t"
|
||||
echo -ne "$BANDWIDTH\t$U_BANDWIDTH\t$U_WEB_DOMAINS\t$U_WEB_SSL\t"
|
||||
echo -ne "$U_WEB_ALIASES\t$U_DNS_DOMAINS\t$U_DNS_RECORDS\t"
|
||||
echo -ne "$U_MAIL_DOMAINS\t$U_MAIL_DKIM\t$U_MAIL_ACCOUNTS\t"
|
||||
echo -e "$U_DATABASES\t$U_CRON_JOBS\t$U_BACKUPS"
|
||||
done < <(cat $USER_DATA/stats.log)
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
IFS=$'\n'
|
||||
echo -n "DATE,TIME,PACKAGE,IP_OWNED,DISK_QUOTA,U_DISK,"
|
||||
echo -n "U_DISK_DIRS,U_DISK_WEB,U_DISK_MAIL,U_DISK_DB,"
|
||||
echo -n "BANDWIDTH,U_BANDWIDTH,U_WEB_DOMAINS,U_WEB_SSL,"
|
||||
echo -n "U_WEB_ALIASES,U_DNS_DOMAINS,U_DNS_RECORDS,"
|
||||
echo -n "U_MAIL_DOMAINS,U_MAIL_DKIM,U_MAIL_ACCOUNTS,"
|
||||
echo "U_DATABASES,U_CRON_JOBS,U_BACKUPS"
|
||||
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n "$DATE,$TIME,$PACKAGE,$IP_OWNED,$DISK_QUOTA,$U_DISK,"
|
||||
echo -n "$U_DISK_DIRS,$U_DISK_WEB,$U_DISK_MAIL,$U_DISK_DB,"
|
||||
echo -n "$BANDWIDTH,$U_BANDWIDTH,$U_WEB_DOMAINS,$U_WEB_SSL,"
|
||||
echo -n "$U_WEB_ALIASES,$U_DNS_DOMAINS,$U_DNS_RECORDS,"
|
||||
echo -n "$U_MAIL_DOMAINS,$U_MAIL_DKIM,$U_MAIL_ACCOUNTS,"
|
||||
echo "$U_DATABASES,$U_CRON_JOBS,$U_BACKUPS"
|
||||
done < <(cat $USER_DATA/stats.log)
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
check_args '1' "$#" 'USER [FORMAT]'
|
||||
validate_format 'user'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
|
||||
|
||||
|
@ -36,21 +128,12 @@ if [ ! -e "$conf" ]; then
|
|||
touch $conf
|
||||
fi
|
||||
|
||||
# Defining fileds to select
|
||||
fields="\$DATE \$TIME \$PACKAGE \$IP_OWNED \$DISK_QUOTA \$U_DISK \$U_DISK_DIRS"
|
||||
fields="$fields \$U_DISK_WEB \$U_DISK_MAIL \$U_DISK_DB \$BANDWIDTH"
|
||||
fields="$fields \$U_BANDWIDTH \$U_WEB_DOMAINS \$U_WEB_SSL \$U_WEB_ALIASES"
|
||||
fields="$fields \$U_DNS_DOMAINS \$U_DNS_RECORDS \$U_MAIL_DOMAINS \$U_MAIL_DKIM"
|
||||
fields="$fields \$U_MAIL_ACCOUNTS \$U_DATABASES \$U_CRON_JOBS \$U_BACKUPS"
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) nohead=1; shell_list ;;
|
||||
shell) fields='$DATE $PACKAGE $U_DISK $U_BANDWIDTH $U_WEB_DOMAINS';
|
||||
fields="$fields \$U_DATABASES"
|
||||
shell_list | column -t ;;
|
||||
*) check_args '1' '0' 'USER [FORMAT]'
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
214
bin/v-list-users
214
bin/v-list-users
|
@ -1,8 +1,8 @@
|
|||
#!/bin/bash
|
||||
# info: list system users
|
||||
# info: list users
|
||||
# options: [FORMAT]
|
||||
#
|
||||
# The function for obtaining the list of all server's users.
|
||||
# The function to obtain the list of all system users.
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
|
@ -12,59 +12,148 @@
|
|||
# Argument definition
|
||||
format=${1-shell}
|
||||
|
||||
# Json function
|
||||
json_list_users() {
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '{'
|
||||
fileds_count=$(echo "$fields" | wc -w)
|
||||
for USER in $(grep @ /etc/passwd|cut -f 1 -d :); do
|
||||
object_count=$(grep '@' /etc/passwd |wc -l)
|
||||
i=1
|
||||
while read USER; do
|
||||
source $VESTA/data/users/$USER/user.conf
|
||||
if [ -n "$data" ]; then
|
||||
echo -e ' },'
|
||||
echo -n ' "'$USER'": {
|
||||
"FNAME": "'$FNAME'",
|
||||
"LNAME": "'$LNAME'",
|
||||
"PACKAGE": "'$PACKAGE'",
|
||||
"WEB_TEMPLATE": "'$WEB_TEMPLATE'",
|
||||
"BACKEND_TEMPLATE": "'$BACKEND_TEMPLATE'",
|
||||
"PROXY_TEMPLATE": "'$PROXY_TEMPLATE'",
|
||||
"DNS_TEMPLATE": "'$DNS_TEMPLATE'",
|
||||
"WEB_DOMAINS": "'$WEB_DOMAINS'",
|
||||
"WEB_ALIASES": "'$WEB_ALIASES'",
|
||||
"DNS_DOMAINS": "'$DNS_DOMAINS'",
|
||||
"DNS_RECORDS": "'$DNS_RECORDS'",
|
||||
"MAIL_DOMAINS": "'$MAIL_DOMAINS'",
|
||||
"MAIL_ACCOUNTS": "'$MAIL_ACCOUNTS'",
|
||||
"DATABASES": "'$DATABASES'",
|
||||
"CRON_JOBS": "'$CRON_JOBS'",
|
||||
"DISK_QUOTA": "'$DISK_QUOTA'",
|
||||
"BANDWIDTH": "'$BANDWIDTH'",
|
||||
"NS": "'$NS'",
|
||||
"SHELL": "'$SHELL'",
|
||||
"BACKUPS": "'$BACKUPS'",
|
||||
"CONTACT": "'$CONTACT'",
|
||||
"CRON_REPORTS": "'$CRON_REPORTS'",
|
||||
"RKEY": "'$RKEY'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"SUSPENDED_USERS": "'$SUSPENDED_USERS'",
|
||||
"SUSPENDED_WEB": "'$SUSPENDED_WEB'",
|
||||
"SUSPENDED_DNS": "'$SUSPENDED_DNS'",
|
||||
"SUSPENDED_MAIL": "'$SUSPENDED_MAIL'",
|
||||
"SUSPENDED_DB": "'$SUSPENDED_DB'",
|
||||
"SUSPENDED_CRON": "'$SUSPENDED_CRON'",
|
||||
"IP_AVAIL": "'$IP_AVAIL'",
|
||||
"IP_OWNED": "'$IP_OWNED'",
|
||||
"U_USERS": "'$U_USERS'",
|
||||
"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_WEB_DOMAINS": "'$U_WEB_DOMAINS'",
|
||||
"U_WEB_SSL": "'$U_WEB_SSL'",
|
||||
"U_WEB_ALIASES": "'$U_WEB_ALIASES'",
|
||||
"U_DNS_DOMAINS": "'$U_DNS_DOMAINS'",
|
||||
"U_DNS_RECORDS": "'$U_DNS_RECORDS'",
|
||||
"U_MAIL_DOMAINS": "'$U_MAIL_DOMAINS'",
|
||||
"U_MAIL_DKIM": "'$U_MAIL_DKIM'",
|
||||
"U_MAIL_ACCOUNTS": "'$U_MAIL_ACCOUNTS'",
|
||||
"U_DATABASES": "'$U_DATABASES'",
|
||||
"U_CRON_JOBS": "'$U_CRON_JOBS'",
|
||||
"U_BACKUPS": "'$U_BACKUPS'",
|
||||
"LANGUAGE": "'$LANGUAGE'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
if [ "$i" -lt "$object_count" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
i=1
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ $i -eq 1 ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ $i -lt $fileds_count ]; then
|
||||
(( ++i))
|
||||
echo -e "\t\t\"${field//$/}\": \"$value\","
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"$value\""
|
||||
data=1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
done
|
||||
if [ -n "$data" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
echo -e '}'
|
||||
((i++))
|
||||
done < <(grep '@' /etc/passwd |cut -f1 -d:)
|
||||
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_users() {
|
||||
if [ -z "$nohead" ]; then
|
||||
echo "${fields//$/}"
|
||||
for a in $fields; do
|
||||
echo -e "--------- \c"
|
||||
done
|
||||
echo
|
||||
fi
|
||||
|
||||
for USER in $(grep @ /etc/passwd|cut -f 1 -d :); do
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "USER PKG WEB DNS MAIL DB DISK BW SPND DATE"
|
||||
echo "---- --- --- --- --- -- ---- -- ---- ----"
|
||||
while read USER; do
|
||||
source $VESTA/data/users/$USER/user.conf
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ -z "$value" ]; then
|
||||
value='NULL'
|
||||
fi
|
||||
echo -n "$value "
|
||||
done
|
||||
echo
|
||||
done
|
||||
echo -n "$USER $PACKAGE $U_WEB_DOMAINS $U_DNS_DOMAINS $U_MAIL_DOMAINS"
|
||||
echo " $U_DATABASES $U_DISK $U_BANDWIDTH $SUSPENDED $DATE"
|
||||
done < <(grep '@' /etc/passwd |cut -f1 -d:)
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
while read USER; do
|
||||
source $VESTA/data/users/$USER/user.conf
|
||||
echo -ne "$USER\t$FNAME\t$LNAME\t$PACKAGE\t$WEB_TEMPLATE\t"
|
||||
echo -ne "$BACKEND_TEMPLATE\t$PROXY_TEMPLATE\t$DNS_TEMPLATE\t"
|
||||
echo -ne "$WEB_DOMAINS\t$WEB_ALIASES\t$DNS_DOMAINS\t$DNS_RECORDS\t"
|
||||
echo -ne "$MAIL_DOMAINS\t$MAIL_ACCOUNTS\t$DATABASES\t$CRON_JOBS\t"
|
||||
echo -ne "$DISK_QUOTA\t$BANDWIDTH\t$NS\t$SHELL\t$BACKUPS\t"
|
||||
echo -ne "$CONTACT\t$CRON_REPORTS\t$RKEY\t$SUSPENDED\t"
|
||||
echo -ne "$SUSPENDED_USERS\t$SUSPENDED_WEB\t$SUSPENDED_DNS\t"
|
||||
echo -ne "$SUSPENDED_MAIL\t$SUSPENDED_DB\t$SUSPENDED_CRON\t"
|
||||
echo -ne "$IP_AVAIL\t$IP_OWNED\t$U_USERS\t$U_DISK\t$U_DISK_DIRS\t"
|
||||
echo -ne "$U_DISK_WEB\t$U_DISK_MAIL\t$U_DISK_DB\t$U_BANDWIDTH\t"
|
||||
echo -ne "$U_WEB_DOMAINS\t$U_WEB_SSL\t$U_WEB_ALIASES\t"
|
||||
echo -ne "$U_DNS_DOMAINS\t$U_DNS_RECORDS\t$U_MAIL_DOMAINS\t"
|
||||
echo -ne "$U_MAIL_DKIM\t$U_MAIL_ACCOUNTS\t$U_DATABASES\t"
|
||||
echo -e "$U_CRON_JOBS\t$U_BACKUPS\t$LANGUAGE\t$TIME\t$DATE\t"
|
||||
done < <(grep '@' /etc/passwd |cut -f1 -d:)
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo -n "USER,FNAME,LNAME,PACKAGE,WEB_TEMPLATE,BACKEND_TEMPLATE,"
|
||||
echo -n "PROXY_TEMPLATE,DNS_TEMPLATE,WEB_DOMAINS,WEB_ALIASES,"
|
||||
echo -n "DNS_DOMAINS,DNS_RECORDS,MAIL_DOMAINS,MAIL_ACCOUNTS,"
|
||||
echo -n "DATABASES,CRON_JOBS,DISK_QUOTA,BANDWIDTH,NS,HOME,SHELL,"
|
||||
echo -n "BACKUPS,CONTACT,CRON_REPORTS,RKEY,SUSPENDED,SUSPENDED_USERS,"
|
||||
echo -n "SUSPENDED_WEB,SUSPENDED_DNS,SUSPENDED_MAIL,SUSPENDED_DB,"
|
||||
echo -n "SUSPENDED_CRON,IP_AVAIL,IP_OWNED,U_USERS,U_DISK,U_DISK_DIRS,"
|
||||
echo -n "U_DISK_WEB,U_DISK_MAIL,U_DISK_DB,U_BANDWIDTH,U_WEB_DOMAINS,"
|
||||
echo -n "U_WEB_SSL,U_WEB_ALIASES,U_DNS_DOMAINS,U_DNS_RECORDS,"
|
||||
echo -n "U_MAIL_DOMAINS,U_MAIL_DKIM,U_MAIL_ACCOUNTS,U_DATABASES"
|
||||
echo "U_CRON_JOBS,U_BACKUPS,LANGUAGE,TIME,DATE"
|
||||
while read USER; do
|
||||
source $VESTA/data/users/$USER/user.conf
|
||||
echo -n "$USER,\"$FNAME\",\"$LNAME\",$PACKAGE,$WEB_TEMPLATE,"
|
||||
echo -n "$BACKEND_TEMPLATE,$PROXY_TEMPLATE,$DNS_TEMPLATE,"
|
||||
echo -n "$WEB_DOMAINS,$WEB_ALIASES,$DNS_DOMAINS,$DNS_RECORDS,"
|
||||
echo -n "$MAIL_DOMAINS,$MAIL_ACCOUNTS,$DATABASES,$CRON_JOBS,"
|
||||
echo -n "$DISK_QUOTA,$BANDWIDTH,\"$NS\",$HOME,$SHELL,$BACKUPS,"
|
||||
echo -n "$CONTACT,$CRON_REPORTS,\"$RKEY\",$SUSPENDED,"
|
||||
echo -n "$SUSPENDED_USERS,$SUSPENDED_WEB,$SUSPENDED_DNS,"
|
||||
echo -n "$SUSPENDED_MAIL,$SUSPENDED_DB,$SUSPENDED_CRON,$IP_AVAIL,"
|
||||
echo -n "$IP_OWNED,$U_USERS,$U_DISK,$U_DISK_DIRS,$U_DISK_WEB,"
|
||||
echo -n "$U_DISK_MAIL,$U_DISK_DB,$U_BANDWIDTH,$U_WEB_DOMAINS,"
|
||||
echo -n "$U_WEB_SSL,$U_WEB_ALIASES,$U_DNS_DOMAINS,$U_DNS_RECORDS,"
|
||||
echo -n "$U_MAIL_DOMAINS,$U_MAIL_DKIM,$U_MAIL_ACCOUNTS,$U_DATABASES,"
|
||||
echo "$U_CRON_JOBS,$U_BACKUPS,$LANGUAGE,$TIME,$DATE"
|
||||
done < <(grep '@' /etc/passwd |cut -f1 -d:)
|
||||
}
|
||||
|
||||
# Raw list function
|
||||
raw_list() {
|
||||
while read USER; do
|
||||
echo $VESTA/data/users/$USER/user.conf
|
||||
cat $VESTA/data/users/$USER/user.conf
|
||||
done < <(grep '@' /etc/passwd |cut -f1 -d:)
|
||||
}
|
||||
|
||||
|
||||
|
@ -72,27 +161,12 @@ shell_list_users() {
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining fileds to select
|
||||
fields="\$USER \$FNAME \$LNAME \$PACKAGE \$WEB_TEMPLATE \$BACKEND_TEMPLATE"
|
||||
fields="$fields \$PROXY_TEMPLATE \$DNS_TEMPLATE \$WEB_DOMAINS \$WEB_ALIASES"
|
||||
fields="$fields \$DNS_DOMAINS \$DNS_RECORDS \$MAIL_DOMAINS \$MAIL_ACCOUNTS"
|
||||
fields="$fields \$DATABASES \$CRON_JOBS \$DISK_QUOTA \$BANDWIDTH \$NS \$SHELL"
|
||||
fields="$fields \$BACKUPS \$CONTACT \$CRON_REPORTS \$RKEY \$SUSPENDED"
|
||||
fields="$fields \$SUSPENDED_USERS \$SUSPENDED_WEB \$SUSPENDED_DNS"
|
||||
fields="$fields \$SUSPENDED_MAIL \$SUSPENDED_DB \$SUSPENDED_CRON \$IP_AVAIL"
|
||||
fields="$fields \$IP_OWNED \$U_USERS \$U_DISK \$U_DISK_DIRS \$U_DISK_WEB"
|
||||
fields="$fields \$U_DISK_MAIL \$U_DISK_DB \$U_BANDWIDTH \$U_WEB_DOMAINS"
|
||||
fields="$fields \$U_WEB_SSL \$U_WEB_ALIASES \$U_DNS_DOMAINS \$U_DNS_RECORDS"
|
||||
fields="$fields \$U_MAIL_DOMAINS \$U_MAIL_DKIM \$U_MAIL_ACCOUNTS"
|
||||
fields="$fields \$U_DATABASES \$U_CRON_JOBS \$U_BACKUPS \$LANGUAGE"
|
||||
fields="$fields \$TIME \$DATE"
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
json) json_list_users ;;
|
||||
plain) nohead=1; shell_list_users ;;
|
||||
shell) fields='$USER $PACKAGE $U_DISK $U_BANDWIDTH $SUSPENDED $DATE';
|
||||
shell_list_users | column -t ;;
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -15,6 +15,100 @@ format=${1-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=$(grep DATE $VESTA/data/users/admin/overall_stats.log |wc -l)
|
||||
echo "{"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n ' "'$DATE'": {
|
||||
"TIME": "'$TIME'",
|
||||
"PACKAGE": "'$PACKAGE'",
|
||||
"IP_OWNED": "'$IP_OWNED'",
|
||||
"DISK_QUOTA": "'$DISK_QUOTA'",
|
||||
"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'",
|
||||
"BANDWIDTH": "'$BANDWIDTH'",
|
||||
"U_BANDWIDTH": "'$U_BANDWIDTH'",
|
||||
"U_WEB_DOMAINS": "'$U_WEB_DOMAINS'",
|
||||
"U_WEB_SSL": "'$U_WEB_SSL'",
|
||||
"U_WEB_ALIASES": "'$U_WEB_ALIASES'",
|
||||
"U_DNS_DOMAINS": "'$U_DNS_DOMAINS'",
|
||||
"U_DNS_RECORDS": "'$U_DNS_RECORDS'",
|
||||
"U_MAIL_DOMAINS": "'$U_MAIL_DOMAINS'",
|
||||
"U_MAIL_DKIM": "'$U_MAIL_DKIM'",
|
||||
"U_MAIL_ACCOUNTS": "'$U_MAIL_ACCOUNTS'",
|
||||
"U_DATABASES": "'$U_DATABASES'",
|
||||
"U_CRON_JOBS": "'$U_CRON_JOBS'",
|
||||
"U_BACKUPS": "'$U_BACKUPS'",
|
||||
"U_USERS": "'$U_USERS'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
((i++))
|
||||
done < <(cat $VESTA/data/users/admin/overall_stats.log)
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
IFS=$'\n'
|
||||
echo "DATE USER WEB DNS MAIL DB BACKUPS IP DISK BW"
|
||||
echo "---- ---- --- --- ---- -- ------- -- ---- --"
|
||||
while read str; do
|
||||
eval $str
|
||||
if [ -z "$U_USERS" ]; then
|
||||
U_USERS=1
|
||||
fi
|
||||
echo -n "$DATE $U_USERS $U_WEB_DOMAINS $U_DNS_DOMAINS "
|
||||
echo -n "$U_MAIL_DOMAINS $U_DATABASES $U_BACKUPS $IP_OWNED "
|
||||
echo "$U_DISK $U_BANDWIDTH"
|
||||
done < <(cat $VESTA/data/users/admin/overall_stats.log)
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
IFS=$'\n'
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -ne "$DATE\t$TIME\t$PACKAGE\t$IP_OWNED\t$DISK_QUOTA\t$U_DISK\t"
|
||||
echo -ne "$U_DISK_DIRS\t$U_DISK_WEB\t$U_DISK_MAIL\t$U_DISK_DB\t"
|
||||
echo -ne "$BANDWIDTH\t$U_BANDWIDTH\t$U_WEB_DOMAINS\t$U_WEB_SSL\t"
|
||||
echo -ne "$U_WEB_ALIASES\t$U_DNS_DOMAINS\t$U_DNS_RECORDS\t"
|
||||
echo -ne "$U_MAIL_DOMAINS\t$U_MAIL_DKIM\t$U_MAIL_ACCOUNTS\t"
|
||||
echo -e "$U_DATABASES\t$U_CRON_JOBS\t$U_BACKUPS\t$U_USERS"
|
||||
done < <(cat $VESTA/data/users/admin/overall_stats.log)
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
IFS=$'\n'
|
||||
echo -n "DATE,TIME,PACKAGE,IP_OWNED,DISK_QUOTA,U_DISK,"
|
||||
echo -n "U_DISK_DIRS,U_DISK_WEB,U_DISK_MAIL,U_DISK_DB,"
|
||||
echo -n "BANDWIDTH,U_BANDWIDTH,U_WEB_DOMAINS,U_WEB_SSL,"
|
||||
echo -n "U_WEB_ALIASES,U_DNS_DOMAINS,U_DNS_RECORDS,"
|
||||
echo -n "U_MAIL_DOMAINS,U_MAIL_DKIM,U_MAIL_ACCOUNTS,"
|
||||
echo "U_DATABASES,U_CRON_JOBS,U_BACKUPS,U_USERS"
|
||||
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n "$DATE,$TIME,$PACKAGE,$IP_OWNED,$DISK_QUOTA,$U_DISK,"
|
||||
echo -n "$U_DISK_DIRS,$U_DISK_WEB,$U_DISK_MAIL,$U_DISK_DB,"
|
||||
echo -n "$BANDWIDTH,$U_BANDWIDTH,$U_WEB_DOMAINS,$U_WEB_SSL,"
|
||||
echo -n "$U_WEB_ALIASES,$U_DNS_DOMAINS,$U_DNS_RECORDS,"
|
||||
echo -n "$U_MAIL_DOMAINS,$U_MAIL_DKIM,$U_MAIL_ACCOUNTS,"
|
||||
echo "$U_DATABASES,$U_CRON_JOBS,$U_BACKUPS,$U_USERS"
|
||||
done < <(cat $VESTA/data/users/admin/overall_stats.log)
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
|
@ -33,21 +127,12 @@ if [ ! -e "$conf" ]; then
|
|||
touch $conf
|
||||
fi
|
||||
|
||||
# Defining fileds to select
|
||||
fields="\$DATE \$TIME \$PACKAGE \$IP_OWNED \$DISK_QUOTA \$U_DISK \$U_DISK_DIRS"
|
||||
fields="$fields \$U_DISK_WEB \$U_DISK_MAIL \$U_DISK_DB \$BANDWIDTH"
|
||||
fields="$fields \$U_BANDWIDTH \$U_WEB_DOMAINS \$U_WEB_SSL \$U_WEB_ALIASES"
|
||||
fields="$fields \$U_DNS_DOMAINS \$U_DNS_RECORDS \$U_MAIL_DOMAINS \$U_MAIL_DKIM"
|
||||
fields="$fields \$U_MAIL_ACCOUNTS \$U_DATABASES \$U_CRON_JOBS \$U_BACKUPS"
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) nohead=1; shell_list ;;
|
||||
shell) fields='$DATE $U_DISK $U_BANDWIDTH $U_WEB_DOMAINS $U_DATABASES';
|
||||
fields="$fields \$U_DATABASES"
|
||||
shell_list | column -t ;;
|
||||
*) check_args '1' '0' '[FORMAT]'
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
#!/bin/bash
|
||||
# info: list web domain
|
||||
# info: list web domain parameters
|
||||
# options: USER DOMAIN [FORMAT]
|
||||
#
|
||||
# The function of obtaining the list of domain parameters. This call, just as
|
||||
# all v_list_* calls, supports 3 formats - json, shell and plain.
|
||||
# The function to obtain web domain parameters.
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
|
@ -18,43 +17,87 @@ format=${3-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_domain() {
|
||||
i=1
|
||||
fileds_count=$(echo "$fields" | wc -w)
|
||||
line=$(grep "DOMAIN='$domain'" $conf)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '{'
|
||||
eval $line
|
||||
for field in $fields; do
|
||||
eval value=$field
|
||||
if [ "$i" -eq 1 ]; then
|
||||
echo -e "\t\"$value\": {"
|
||||
else
|
||||
if [ "$fileds_count" -eq "$i" ]; then
|
||||
echo -e "\t\t\"${field//$/}\": \"$value\""
|
||||
else
|
||||
echo -e "\t\t\"${field//$/}\": \"$value\","
|
||||
fi
|
||||
fi
|
||||
(( ++i))
|
||||
done
|
||||
if [ -n "$value" ]; then
|
||||
echo -e ' }'
|
||||
fi
|
||||
echo -e "}"
|
||||
echo ' "'$DOMAIN'": {
|
||||
"IP": "'$IP'",
|
||||
"IP6": "'$IP6'",
|
||||
"U_DISK": "'$U_DISK'",
|
||||
"U_BANDWIDTH": "'$U_BANDWIDTH'",
|
||||
"TPL": "'$TPL'",
|
||||
"ALIAS": "'$ALIAS'",
|
||||
"STATS": "'$STATS'",
|
||||
"STATS_USER": "'$STATS_USER'",
|
||||
"SSL": "'$SSL'",
|
||||
"SSL_HOME": "'$SSL_HOME'",
|
||||
"FTP_USER": "'$FTP_USER'",
|
||||
"FTP_PATH": "'$FTP_PATH'",
|
||||
"AUTH_USER": "'$AUTH_USER'",
|
||||
"BACKEND": "'$BACKEND'",
|
||||
"PROXY": "'$PROXY'",
|
||||
"PROXY_EXT": "'$PROXY_EXT'",
|
||||
"DOCUMENT_ROOT": "'$HOMEDIR/$user/web/$domain/public_html'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_domain() {
|
||||
line=$(grep "DOMAIN='$domain'" $conf)
|
||||
eval $line
|
||||
for field in $fields; do
|
||||
eval key="$field"
|
||||
if [ -z "$key" ]; then
|
||||
key='NULL'
|
||||
fi
|
||||
echo "${field//$/}: $key "
|
||||
done
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
source $VESTA/conf/vesta.conf
|
||||
echo "DOMAIN: $DOMAIN"
|
||||
echo "ALIAS: ${ALIAS//,/ }"
|
||||
echo "IP: $IP"
|
||||
if [ ! -z "$IP6" ]; then
|
||||
echo "IP6: $IP6"
|
||||
fi
|
||||
if [ ! -z "$SSL" ] && [ "$SSL" != 'no' ]; then
|
||||
echo "SSL: $SSL / $SSL_HOME"
|
||||
fi
|
||||
echo "TEMPLATE: $TPL"
|
||||
if [ ! -z "$WEB_BACKEND" ]; then
|
||||
echo "BACKEND: $BACKEND"
|
||||
fi
|
||||
if [ ! -z "$PROXY_SYSTEM" ]; then
|
||||
echo "PROXY: $PROXY"
|
||||
echo "PROXY EXT: ${PROXY_EXT//,/ }"
|
||||
fi
|
||||
if [ ! -z "$STATS" ]; then
|
||||
echo "STATS: $STATS"
|
||||
fi
|
||||
if [ ! -z "$FTP_USER" ]; then
|
||||
echo "FTP_USER: ${FTP_USER//,/, }"
|
||||
fi
|
||||
if [ ! -z "$AUTH_USER" ]; then
|
||||
echo "HTTP_AUTH: $AUTH_USER"
|
||||
fi
|
||||
echo "DISK: $U_DISK"
|
||||
echo "BW: $U_BANDWIDTH"
|
||||
echo "SUSPENDED: $SUSPENDED"
|
||||
echo "TIME: $TIME"
|
||||
echo "DATE: $DATE"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo -ne "$DOMAIN\t$IP\t$IP6\t$U_DISK\t$U_BANDWIDTH\t$TPL\t"
|
||||
echo -ne "$ALIAS\t$STATS\t$STATS_USER\t$SSL\t$SSL_HOME\t"
|
||||
echo -ne "$FTP_USER\t$FTP_PATH\t$AUTH_USER\t$BACKEND\t$PROXY\t"
|
||||
echo -e "$PROXY_EXT\t$SUSPENDED\t$TIME\t$DATE"
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo -n "DOMAIN,IP,IP6,U_DISK,U_BANDWIDTH,TPL,ALIAS,STATS,STATS_USER,SSL,"
|
||||
echo -n "SSL_HOME,FTP_USER,FTP_PATH,AUTH_USER,BACKEND,PROXY,PROXY_EXT,"
|
||||
echo "SUSPENDED,TIME,DATE"
|
||||
echo -n "$DOMAIN,$IP,$IP6,$U_DISK,$U_BANDWIDTH,$TPL,\"$ALIAS\",$STATS"
|
||||
echo -n "\"$STATS_USER\",$SSL,$SSL_HOME,\"$FTP_USER\",\"$FTP_PATH\","
|
||||
echo -n "\"$AUTH_USER\",$BACKEND,$PROXY,\"$PROXY_EXT\",$SUSPENDED,$TIME,"
|
||||
echo "$DATE"
|
||||
}
|
||||
|
||||
|
||||
|
@ -71,23 +114,15 @@ is_object_valid 'web' 'DOMAIN' "$domain"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining config
|
||||
conf=$USER_DATA/web.conf
|
||||
# Parsing domain
|
||||
eval $(grep "DOMAIN='$domain'" $USER_DATA/web.conf)
|
||||
|
||||
# Defining fileds to select
|
||||
fields='$DOMAIN $IP $IP6 $U_DISK $U_BANDWIDTH $TPL $ALIAS $STATS $STATS_USER
|
||||
$SSL $SSL_HOME $FTP_USER $FTP_PATH $BACKEND $PROXY $PROXY_EXT $AUTH_USER
|
||||
$DOCUMENT_ROOT $SUSPENDED $TIME $DATE'
|
||||
|
||||
# Defining document root
|
||||
DOCUMENT_ROOT="$HOMEDIR/$user/web/$domain/public_html"
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
json) json_list_domain ;;
|
||||
plain) nohead=1; shell_list_domain ;;
|
||||
shell) shell_list_domain |column -t;;
|
||||
*) check_args '2' '0' 'USER DOMAIN [FORMAT]'
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -19,14 +19,14 @@ format=${4-shell}
|
|||
source $VESTA/func/main.sh
|
||||
source $VESTA/conf/vesta.conf
|
||||
|
||||
|
||||
# Json function
|
||||
json_list_log() {
|
||||
# JSON list function
|
||||
json_list() {
|
||||
i=1
|
||||
objects=$(echo "$lines" |wc -l)
|
||||
echo '['
|
||||
for str in $lines; do
|
||||
str=$(echo "$str" |sed -e 's/"/\\"/g')
|
||||
if [ "$i" -lt "$counter" ]; then
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo -e "\t\"$str\","
|
||||
else
|
||||
echo -e "\t\"$str\""
|
||||
|
@ -36,17 +36,29 @@ json_list_log() {
|
|||
echo "]"
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_log() {
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "$lines"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo "$lines"
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "LOG"
|
||||
echo "$lines"
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
check_args '2' "$#" 'USER DOMAIN [LINES] [FORMAT]'
|
||||
validate_format 'user' 'domain' 'ttl'
|
||||
is_format_valid 'user' 'domain' 'ttl'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
is_object_valid 'web' 'DOMAIN' "$domain"
|
||||
|
||||
|
@ -63,14 +75,14 @@ else
|
|||
fi
|
||||
|
||||
lines=$($read_cmd /var/log/$WEB_SYSTEM/domains/$domain.log)
|
||||
counter=$(echo "$lines" |wc -l)
|
||||
IFS=$'\n'
|
||||
|
||||
# Listing logs
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list_log ;;
|
||||
plain) shell_list_log ;;
|
||||
shell) shell_list_log ;;
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -19,14 +19,14 @@ format=${4-shell}
|
|||
source $VESTA/func/main.sh
|
||||
source $VESTA/conf/vesta.conf
|
||||
|
||||
|
||||
# Json function
|
||||
json_list_log() {
|
||||
# JSON list function
|
||||
json_list() {
|
||||
i=1
|
||||
objects=$(echo "$lines" |wc -l)
|
||||
echo '['
|
||||
for str in $lines; do
|
||||
str=$(echo "$str" |sed -e 's/"/\\"/g')
|
||||
if [ "$i" -lt "$counter" ]; then
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo -e "\t\"$str\","
|
||||
else
|
||||
echo -e "\t\"$str\""
|
||||
|
@ -36,17 +36,29 @@ json_list_log() {
|
|||
echo "]"
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_log() {
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "$lines"
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
echo "$lines"
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "LOG"
|
||||
echo "$lines"
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
check_args '2' "$#" 'USER DOMAIN [LINES] [FORMAT]'
|
||||
validate_format 'user' 'domain' 'ttl'
|
||||
is_format_valid 'user' 'domain' 'ttl'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
is_object_valid 'web' 'DOMAIN' "$domain"
|
||||
|
||||
|
@ -63,14 +75,14 @@ else
|
|||
fi
|
||||
|
||||
lines=$($read_cmd /var/log/$WEB_SYSTEM/domains/$domain.error.log)
|
||||
counter=$(echo "$lines" |wc -l)
|
||||
IFS=$'\n'
|
||||
|
||||
# Listing logs
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list_log ;;
|
||||
plain) shell_list_log ;;
|
||||
shell) shell_list_log ;;
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -17,19 +17,25 @@ format=${3-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# Json function
|
||||
json_list_ssl() {
|
||||
i='1' # iterator
|
||||
# JSON list function
|
||||
json_list() {
|
||||
echo '{'
|
||||
echo -e "\t\"$domain\": {"
|
||||
echo " \"CRT\": \"$crt\","
|
||||
echo " \"KEY\": \"$key\","
|
||||
echo " \"CA\": \"$ca\""
|
||||
echo " \"CA\": \"$ca\","
|
||||
echo " \"SUBJECT\": \"$subj\","
|
||||
echo " \"ALIASES\": \"$alt_dns\","
|
||||
echo " \"NOT_BEFORE\": \"$before\","
|
||||
echo " \"NOT_AFTER\": \"$after\","
|
||||
echo " \"SIGNATURE\": \"$signature\","
|
||||
echo " \"PUB_KEY\": \"$pub_key\","
|
||||
echo " \"ISSUER\": \"$issuer\""
|
||||
echo -e "\t}\n}"
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_ssl() {
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
if [ ! -z "$crt" ]; then
|
||||
echo -e "$crt"
|
||||
fi
|
||||
|
@ -39,6 +45,50 @@ shell_list_ssl() {
|
|||
if [ ! -z "$ca" ]; then
|
||||
echo -e "\n$ca"
|
||||
fi
|
||||
if [ ! -z "$crt" ]; then
|
||||
echo
|
||||
echo
|
||||
echo "SUBJECT: $subj"
|
||||
if [ ! -z "$alt_dns" ]; then
|
||||
echo "ALIASES: ${alt_dns//,/ }"
|
||||
fi
|
||||
echo "VALID FROM: $before"
|
||||
echo "VALID TIL: $after"
|
||||
echo "SIGNATURE: $signature"
|
||||
echo "PUB_KEY: $pub_key"
|
||||
echo "ISSUER: $issuer"
|
||||
fi
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
if [ ! -z "$crt" ]; then
|
||||
echo -e "$crt"
|
||||
fi
|
||||
if [ ! -z "$key" ]; then
|
||||
echo -e "\n$key"
|
||||
fi
|
||||
if [ ! -z "$ca" ]; then
|
||||
echo -e "\n$ca"
|
||||
fi
|
||||
if [ ! -z "$crt" ]; then
|
||||
echo "$subj"
|
||||
echo "${alt_dns//,/ }"
|
||||
echo "$before"
|
||||
echo "$after"
|
||||
echo "$signature"
|
||||
echo "$pub_key"
|
||||
echo "$issuer"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo -n "CRT,KEY,CA,SUBJECT,ALIASES,NOT_BEFORE,NOT_AFTER,SIGNATURE,"
|
||||
echo "PUB_KEY,ISSUER"
|
||||
echo -n "\"$crt\",\"$key\",\"$ca\",\"$subj\",\"${alt_dns//,/ }\","
|
||||
echo "\"$before\",\"$after\",\"$signature\",\"$pub_key\",\"$issuer\""
|
||||
}
|
||||
|
||||
|
||||
|
@ -50,27 +100,42 @@ check_args '2' "$#" 'USER DOMAIN [FORMAT]'
|
|||
is_object_valid 'user' 'USER' "$user"
|
||||
is_object_valid 'web' 'DOMAIN' "$domain"
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Parsing domain SSL certificate
|
||||
if [ -e "$USER_DATA/ssl/$domain.crt" ]; then
|
||||
crt=$(cat $USER_DATA/ssl/$domain.crt | sed ':a;N;$!ba;s/\n/\\n/g' )
|
||||
crt=$(cat $USER_DATA/ssl/$domain.crt |sed ':a;N;$!ba;s/\n/\\n/g')
|
||||
|
||||
info=$(openssl x509 -text -in $USER_DATA/ssl/$domain.crt)
|
||||
subj=$(echo "$info" |grep Subject: |cut -f 2 -d =)
|
||||
before=$(echo "$info" |grep Before: |sed -e "s/.*Before: //")
|
||||
after=$(echo "$info" |grep "After :" |sed -e "s/.*After : //")
|
||||
signature=$(echo "$info" |grep "Algorithm:" |head -n1 )
|
||||
signature=$(echo "$signature"| sed -e "s/.*Algorithm: //")
|
||||
pub_key=$(echo "$info" |grep Public-Key: |cut -f2 -d \( | tr -d \))
|
||||
issuer=$(echo "$info" |grep Issuer: |sed -e "s/.*Issuer: //")
|
||||
alt_dns=$(echo "$info" |grep DNS |sed -e 's/DNS:/\n/g' |tr -d ',')
|
||||
alt_dns=$(echo "$alt_dns" |tr -d ' ' |sed -e "/^$/d")
|
||||
alt_dns=$(echo "$alt_dns" |sed -e ':a;N;$!ba;s/\n/,/g')
|
||||
fi
|
||||
|
||||
if [ -e "$USER_DATA/ssl/$domain.key" ]; then
|
||||
key=$(cat $USER_DATA/ssl/$domain.key | sed ':a;N;$!ba;s/\n/\\n/g' )
|
||||
key=$(cat $USER_DATA/ssl/$domain.key |sed ':a;N;$!ba;s/\n/\\n/g')
|
||||
fi
|
||||
|
||||
if [ -e "$USER_DATA/ssl/$domain.ca" ]; then
|
||||
ca=$(cat $USER_DATA/ssl/$domain.ca | sed ':a;N;$!ba;s/\n/\\n/g' )
|
||||
ca=$(cat $USER_DATA/ssl/$domain.ca |sed ':a;N;$!ba;s/\n/\\n/g')
|
||||
fi
|
||||
|
||||
# Listing domains
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list_ssl ;;
|
||||
plain) nohead=1; shell_list_ssl ;;
|
||||
shell) shell_list_ssl ;;
|
||||
*) check_args '1' '0' '[FORMAT]'
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# info: list web domains
|
||||
# options: USER [FORMAT]
|
||||
#
|
||||
# The function of obtaining the list of all user domains.
|
||||
# The function to obtain the list of all user web domains.
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
|
@ -16,13 +16,89 @@ format=${2-shell}
|
|||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
||||
# JSON list function
|
||||
json_list() {
|
||||
IFS=$'\n'
|
||||
i=1
|
||||
objects=$(grep DOMAIN $USER_DATA/web.conf |wc -l)
|
||||
echo "{"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n ' "'$DOMAIN'": {
|
||||
"IP": "'$IP'",
|
||||
"IP6": "'$IP6'",
|
||||
"U_DISK": "'$U_DISK'",
|
||||
"U_BANDWIDTH": "'$U_BANDWIDTH'",
|
||||
"TPL": "'$TPL'",
|
||||
"ALIAS": "'$ALIAS'",
|
||||
"STATS": "'$STATS'",
|
||||
"STATS_USER": "'$STATS_USER'",
|
||||
"SSL": "'$SSL'",
|
||||
"SSL_HOME": "'$SSL_HOME'",
|
||||
"FTP_USER": "'$FTP_USER'",
|
||||
"FTP_PATH": "'$FTP_PATH'",
|
||||
"AUTH_USER": "'$AUTH_USER'",
|
||||
"BACKEND": "'$BACKEND'",
|
||||
"PROXY": "'$PROXY'",
|
||||
"PROXY_EXT": "'$PROXY_EXT'",
|
||||
"SUSPENDED": "'$SUSPENDED'",
|
||||
"TIME": "'$TIME'",
|
||||
"DATE": "'$DATE'"
|
||||
}'
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo ','
|
||||
else
|
||||
echo
|
||||
fi
|
||||
((i++))
|
||||
done < <(cat $USER_DATA/web.conf)
|
||||
echo '}'
|
||||
}
|
||||
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
IFS=$'\n'
|
||||
echo "DOMAIN IP TPL SSL DISK BW SPND DATE"
|
||||
echo "------ -- --- --- ---- -- ---- ----"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo "$DOMAIN $IP $TPL $SSL $U_DISK $U_BANDWIDTH $SUSPENDED $DATE"
|
||||
done < <(cat $USER_DATA/web.conf)
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
IFS=$'\n'
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -ne "$DOMAIN\t$IP\t$IP6\t$U_DISK\t$U_BANDWIDTH\t$TPL\t"
|
||||
echo -ne "$ALIAS\t$STATS\t$STATS_USER\t$SSL\t$SSL_HOME\t"
|
||||
echo -ne "$FTP_USER\t$FTP_PATH\t$AUTH_USER\t$BACKEND\t$PROXY\t"
|
||||
echo -e "$PROXY_EXT\t$SUSPENDED\t$TIME\t$DATE"
|
||||
done < <(cat $USER_DATA/web.conf)
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
IFS=$'\n'
|
||||
echo -n "DOMAIN,IP,IP6,U_DISK,U_BANDWIDTH,TPL,ALIAS,STATS,STATS_USER,"
|
||||
echo -n "SSL,SSL_HOME,FTP_USER,FTP_PATH,AUTH_USER,BACKEND,PROXY,"
|
||||
echo "PROXY_EXT,SUSPENDED,TIME,DATE"
|
||||
while read str; do
|
||||
eval $str
|
||||
echo -n "$DOMAIN,$IP,$IP6,$U_DISK,$U_BANDWIDTH,$TPL,"
|
||||
echo -n "\"$ALIAS\",$STATS,\"$STATS_USER\",$SSL,$SSL_HOME,"
|
||||
echo -n "\"$FTP_USER\",\"$FTP_PATH\",\"$AUTH_USER\",$BACKEND,$PROXY,"
|
||||
echo "\"$PROXY_EXT\",$SUSPENDED,$TIME,$DATE"
|
||||
done < <(cat $USER_DATA/web.conf)
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
check_args '1' "$#" 'USER [FORMAT]'
|
||||
validate_format 'user'
|
||||
is_object_valid 'user' 'USER' "$user"
|
||||
|
||||
|
||||
|
@ -30,21 +106,12 @@ is_object_valid 'user' 'USER' "$user"
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Defining config
|
||||
conf=$USER_DATA/web.conf
|
||||
|
||||
# Defining fileds to select
|
||||
fields="\$DOMAIN \$IP \$IP6 \$U_DISK \$U_BANDWIDTH \$TPL \$ALIAS \$STATS"
|
||||
fields="$fields \$STATS_USER \$SSL \$SSL_HOME \$FTP_USER \$FTP_PATH \$AUTH_USER"
|
||||
fields="$fields \$BACKEND \$PROXY \$PROXY_EXT \$SUSPENDED \$TIME \$DATE"
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) nohead=1; shell_list ;;
|
||||
shell) fields='$DOMAIN $IP $U_DISK $U_BANDWIDTH $TPL $DATE';
|
||||
shell_list | column -t ;;
|
||||
*) check_args '1' '0' 'USER [FORMAT]'
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list |column -t ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -16,32 +16,43 @@ format=${1-shell}
|
|||
source $VESTA/func/main.sh
|
||||
source $VESTA/conf/vesta.conf
|
||||
|
||||
# Json function
|
||||
json_list_st() {
|
||||
stats=$(echo "${STATS_SYSTEM//,/ } none")
|
||||
st_counter=$(echo "$stats" | wc -w)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
objects=$(echo "$stats" | wc -w)
|
||||
i=1
|
||||
echo '['
|
||||
for st in $stats; do
|
||||
if [ "$i" -lt "$st_counter" ]; then
|
||||
echo -e "\t\"$st\","
|
||||
for str in $stats; do
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo -e "\t\"$str\","
|
||||
else
|
||||
echo -e "\t\"$st\""
|
||||
echo -e "\t\"$str\""
|
||||
fi
|
||||
(( ++i))
|
||||
done
|
||||
echo "]"
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_st() {
|
||||
stats=$(echo "none ${STATS_SYSTEM//,/ }")
|
||||
if [ -z "$nohead" ]; then
|
||||
echo "STATS"
|
||||
echo "----------"
|
||||
fi
|
||||
for st in $stats; do
|
||||
echo "$st"
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "PARSER"
|
||||
echo "------"
|
||||
for parser in $stats; do
|
||||
echo "$parser"
|
||||
done
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
for parser in $stats; do
|
||||
echo "$parser"
|
||||
done
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "PARSER"
|
||||
for parser in $stats; do
|
||||
echo "$parser"
|
||||
done
|
||||
}
|
||||
|
||||
|
@ -50,12 +61,15 @@ shell_list_st() {
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
json) json_list_st ;;
|
||||
plain) nohead=1; shell_list_st ;;
|
||||
shell) shell_list_st ;;
|
||||
*) check_args '1' '0' '[FORMAT]' ;;
|
||||
# Parsing stats system
|
||||
stats=$(echo "none ${STATS_SYSTEM//,/ }")
|
||||
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -16,15 +16,13 @@ format=${1-shell}
|
|||
source $VESTA/func/main.sh
|
||||
source $VESTA/conf/vesta.conf
|
||||
|
||||
# Json function
|
||||
json_list_wtpl() {
|
||||
templates=$(ls -v $WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/)
|
||||
templates=$(echo "$templates" | grep '\.tpl' | sed 's/\.tpl$//')
|
||||
t_counter=$(echo "$templates" | wc -w)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
objects=$(echo "$templates" |wc -w)
|
||||
i=1
|
||||
echo '['
|
||||
for template in $templates; do
|
||||
if [ "$i" -lt "$t_counter" ]; then
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo -e "\t\"$template\","
|
||||
else
|
||||
echo -e "\t\"$template\""
|
||||
|
@ -34,31 +32,45 @@ json_list_wtpl() {
|
|||
echo "]"
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_wtpl() {
|
||||
templates=$(ls -v $WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/)
|
||||
templates=$(echo "$templates" | grep '\.tpl' | sed 's/\.tpl$//')
|
||||
if [ -z "$nohead" ]; then
|
||||
echo "Templates"
|
||||
echo "----------"
|
||||
fi
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "TEMPLATE"
|
||||
echo "--------"
|
||||
for template in $templates; do
|
||||
echo "$template"
|
||||
done
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
for template in $templates; do
|
||||
echo "$template"
|
||||
done
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "TEMPLATE"
|
||||
for template in $templates; do
|
||||
echo "$template"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Listing domains
|
||||
# Parsing templates
|
||||
templates=$(ls -v $WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/)
|
||||
templates=$(echo "$templates" |grep '\.tpl' |sed 's/\.tpl$//')
|
||||
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list_wtpl ;;
|
||||
plain) nohead=1; shell_list_wtpl ;;
|
||||
shell) shell_list_wtpl ;;
|
||||
*) check_args '1' '0' '[FORMAT]'
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -16,13 +16,13 @@ format=${1-shell}
|
|||
source $VESTA/func/main.sh
|
||||
source $VESTA/conf/vesta.conf
|
||||
|
||||
# Json function
|
||||
json_list_wtpl() {
|
||||
t_counter=$(echo "$templates" | wc -w)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
i=1
|
||||
objects=$(echo "$templates" |wc -w)
|
||||
echo '['
|
||||
for template in $templates; do
|
||||
if [ "$i" -lt "$t_counter" ]; then
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo -e "\t\"$template\","
|
||||
else
|
||||
echo -e "\t\"$template\""
|
||||
|
@ -30,14 +30,27 @@ json_list_wtpl() {
|
|||
(( ++i))
|
||||
done
|
||||
echo "]"
|
||||
}
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_wtpl() {
|
||||
if [ -z "$nohead" ]; then
|
||||
echo "Templates"
|
||||
echo "----------"
|
||||
fi
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "TEMPLATE"
|
||||
echo "--------"
|
||||
for template in $templates; do
|
||||
echo "$template"
|
||||
done
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
for template in $templates; do
|
||||
echo "$template"
|
||||
done
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "TEMPLATE"
|
||||
for template in $templates; do
|
||||
echo "$template"
|
||||
done
|
||||
|
@ -48,21 +61,20 @@ shell_list_wtpl() {
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Proxy templates
|
||||
if [ -z "$WEB_BACKEND" ]; then
|
||||
exit
|
||||
# Parsing backend templates
|
||||
if [ ! -z "$WEB_BACKEND" ]; then
|
||||
templates=$(ls -t $WEBTPL/$WEB_BACKEND |\
|
||||
cut -f1 -d . |\
|
||||
grep -v proxy_ip |\
|
||||
sort -u )
|
||||
fi
|
||||
templates=$(ls -t $WEBTPL/$WEB_BACKEND |\
|
||||
cut -f1 -d . |\
|
||||
grep -v proxy_ip |\
|
||||
sort -u )
|
||||
|
||||
# Listing domains
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list_wtpl ;;
|
||||
plain) nohead=1; shell_list_wtpl ;;
|
||||
shell) shell_list_wtpl ;;
|
||||
*) check_args '1' '0' '[FORMAT]'
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
|
@ -16,13 +16,13 @@ format=${1-shell}
|
|||
source $VESTA/func/main.sh
|
||||
source $VESTA/conf/vesta.conf
|
||||
|
||||
# Json function
|
||||
json_list_wtpl() {
|
||||
t_counter=$(echo "$templates" | wc -w)
|
||||
# JSON list function
|
||||
json_list() {
|
||||
objects=$(echo "$templates" |wc -w)
|
||||
i=1
|
||||
echo '['
|
||||
for template in $templates; do
|
||||
if [ "$i" -lt "$t_counter" ]; then
|
||||
if [ "$i" -lt "$objects" ]; then
|
||||
echo -e "\t\"$template\","
|
||||
else
|
||||
echo -e "\t\"$template\""
|
||||
|
@ -30,14 +30,27 @@ json_list_wtpl() {
|
|||
(( ++i))
|
||||
done
|
||||
echo "]"
|
||||
}
|
||||
}
|
||||
|
||||
# Shell function
|
||||
shell_list_wtpl() {
|
||||
if [ -z "$nohead" ]; then
|
||||
echo "Templates"
|
||||
echo "----------"
|
||||
fi
|
||||
# SHELL list function
|
||||
shell_list() {
|
||||
echo "TEMPLATE"
|
||||
echo "--------"
|
||||
for template in $templates; do
|
||||
echo "$template"
|
||||
done
|
||||
}
|
||||
|
||||
# PLAIN list function
|
||||
plain_list() {
|
||||
for template in $templates; do
|
||||
echo "$template"
|
||||
done
|
||||
}
|
||||
|
||||
# CSV list function
|
||||
csv_list() {
|
||||
echo "TEMPLATE"
|
||||
for template in $templates; do
|
||||
echo "$template"
|
||||
done
|
||||
|
@ -48,21 +61,20 @@ shell_list_wtpl() {
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Proxy templates
|
||||
if [ -z "$PROXY_SYSTEM" ]; then
|
||||
exit
|
||||
# Parsing proxy templates
|
||||
if [ ! -z "$PROXY_SYSTEM" ]; then
|
||||
templates=$(ls -t $WEBTPL/$PROXY_SYSTEM |\
|
||||
cut -f1 -d . |\
|
||||
grep -v proxy_ip |\
|
||||
sort -u )
|
||||
fi
|
||||
templates=$(ls -t $WEBTPL/$PROXY_SYSTEM |\
|
||||
cut -f1 -d . |\
|
||||
grep -v proxy_ip |\
|
||||
sort -u )
|
||||
|
||||
# Listing domains
|
||||
# Listing data
|
||||
case $format in
|
||||
json) json_list_wtpl ;;
|
||||
plain) nohead=1; shell_list_wtpl ;;
|
||||
shell) shell_list_wtpl ;;
|
||||
*) check_args '1' '0' '[FORMAT]'
|
||||
json) json_list ;;
|
||||
plain) plain_list ;;
|
||||
csv) csv_list ;;
|
||||
shell) shell_list ;;
|
||||
esac
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue