Skip to content

Commit 917b6e2

Browse files
committed
added overall stats
1 parent b5d2658 commit 917b6e2

File tree

7 files changed

+388
-14
lines changed

7 files changed

+388
-14
lines changed

bin/v-list-users-stats

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#!/bin/bash
2+
# info: list overall user stats
3+
# options: [format]
4+
#
5+
# The function for listing overall user statistics
6+
7+
8+
#----------------------------------------------------------#
9+
# Variable&Function #
10+
#----------------------------------------------------------#
11+
12+
# Argument defenition
13+
format=${1-shell}
14+
15+
# Includes
16+
source $VESTA/func/main.sh
17+
18+
19+
#----------------------------------------------------------#
20+
# Verifications #
21+
#----------------------------------------------------------#
22+
23+
check_args '0' "$#" '[format]'
24+
25+
26+
#----------------------------------------------------------#
27+
# Action #
28+
#----------------------------------------------------------#
29+
30+
# Defining config
31+
conf=$VESTA/data/users/admin/overall_stats.log
32+
33+
# Defining fileds to select
34+
fields="\$DATE \$TIME \$PACKAGE \$IP_OWNED \$DISK_QUOTA \$U_DISK \$U_DISK_DIRS"
35+
fields="$fields \$U_DISK_WEB \$U_DISK_MAIL \$U_DISK_DB \$BANDWIDTH"
36+
fields="$fields \$U_BANDWIDTH \$U_WEB_DOMAINS \$U_WEB_SSL \$U_WEB_ALIASES"
37+
fields="$fields \$U_DNS_DOMAINS \$U_DNS_RECORDS \$U_MAIL_DOMAINS \$U_MAIL_DKIM"
38+
fields="$fields \$U_MAIL_ACCOUNTS \$U_DATABASES \$U_CRON_JOBS \$U_BACKUPS"
39+
40+
# Listing domains
41+
case $format in
42+
json) json_list ;;
43+
plain) nohead=1; shell_list ;;
44+
shell) fields='$DATE $U_DISK $U_BANDWIDTH $U_WEB_DOMAINS $U_DATABASES';
45+
fields="$fields \$U_DATABASES"
46+
shell_list | column -t ;;
47+
*) check_args '1' '0' '[format]'
48+
esac
49+
50+
51+
#----------------------------------------------------------#
52+
# Vesta #
53+
#----------------------------------------------------------#
54+
55+
exit

bin/v-update-user-stats

Lines changed: 77 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,32 @@ else
4444
user_list="$user"
4545
fi
4646

47+
# Reset overal statistics
48+
TOTAL_IP_OWNED=0
49+
TOTAL_U_DISK=0
50+
TOTAL_U_DISK_DIRS=0
51+
TOTAL_U_DISK_WEB=0
52+
TOTAL_U_DISK_MAIL=0
53+
TOTAL_U_DISK_DB=0
54+
TOTAL_U_BANDWIDTH=0
55+
TOTAL_U_WEB_DOMAINS=0
56+
TOTAL_U_WEB_SSL=0
57+
TOTAL_U_WEB_ALIASES=0
58+
TOTAL_U_DNS_DOMAINS=0
59+
TOTAL_U_DNS_RECORDS=0
60+
TOTAL_U_MAIL_DOMAINS=0
61+
TOTAL_U_MAIL_DKIM=0
62+
TOTAL_U_MAIL_ACCOUNTS=0
63+
TOTAL_U_DATABASES=0
64+
TOTAL_U_CRON_JOBS=0
65+
TOTAL_U_BACKUPS=0
66+
4767
# Updating user stats
4868
for user in $user_list; do
4969
USER_DATA=$VESTA/data/users/$user
5070
source $USER_DATA/user.conf
51-
DATE=$(date -d "$(date +'%m/01' -d "+ 1 month") -1day" +%F)
71+
next_month=$(date +'%m/01' -d '+ 1 month')
72+
DATE=$(date -d "$next_month -1day" +%F)
5273

5374
# Compiling report string
5475
s="DATE='$DATE' TIME='$TIME' PACKAGE='$PACKAGE' IP_OWNED='$IP_OWNED'"
@@ -80,8 +101,63 @@ for user in $user_list; do
80101
echo "$s" >$stats
81102
chmod 660 $stats
82103
fi
104+
105+
# Increase overall counters
106+
TOTAL_IP_OWNED=$((TOTAL_IP_OWNED + IP_OWNED))
107+
TOTAL_U_DISK=$((TOTAL_U_DISK + U_DISK))
108+
TOTAL_U_DISK_DIRS=$((TOTAL_U_DISK_DIRS + U_DISK_DIRS))
109+
TOTAL_U_DISK_WEB=$((TOTAL_U_DISK_WEB + U_DISK_WEB))
110+
TOTAL_U_DISK_MAIL=$((TOTAL_U_DISK_MAIL + U_DISK_MAIL))
111+
TOTAL_U_DISK_DB=$((TOTAL_U_DISK_DB + U_DISK_DB))
112+
TOTAL_U_BANDWIDTH=$((TOTAL_U_BANDWIDTH + U_BANDWIDTH))
113+
TOTAL_U_WEB_DOMAINS=$((TOTAL_U_WEB_DOMAINS + U_WEB_DOMAINS))
114+
TOTAL_U_WEB_SSL=$((TOTAL_U_WEB_SSL + U_WEB_SSL))
115+
TOTAL_U_WEB_ALIASES=$((TOTAL_U_WEB_ALIASES + U_WEB_ALIASES))
116+
TOTAL_U_DNS_DOMAINS=$((TOTAL_U_DNS_DOMAINS + U_DNS_DOMAINS))
117+
TOTAL_U_DNS_RECORDS=$((TOTAL_U_DNS_RECORDS + U_DNS_RECORDS))
118+
TOTAL_U_MAIL_DOMAINS=$((TOTAL_U_MAIL_DOMAINS + U_MAIL_DOMAINS))
119+
TOTAL_U_MAIL_DKIM=$((TOTAL_U_MAIL_DKIM + U_MAIL_DKIM))
120+
TOTAL_U_MAIL_ACCOUNTS=$((TOTAL_U_MAIL_ACCOUNTS + U_MAIL_ACCOUNTS))
121+
TOTAL_U_DATABASES=$((TOTAL_U_DATABASES + U_DATABASES))
122+
TOTAL_U_CRON_JOBS=$((TOTAL_U_CRON_JOBS + U_CRON_JOBS))
123+
TOTAL_U_BACKUPS=$((TOTAL_U_BACKUPS + U_BACKUPS))
124+
83125
done
84126

127+
# Updating overall stats
128+
stats="$VESTA/data/users/admin/overall_stats.log"
129+
130+
s="DATE='$DATE' TIME='$TIME' PACKAGE='default' IP_OWNED='$TOTAL_IP_OWNED'"
131+
s="$s DISK_QUOTA='0' U_DISK='$TOTAL_U_DISK' U_DISK_DIRS='$TOTAL_U_DISK_DIRS'"
132+
s="$s U_DISK_WEB='$TOTAL_U_DISK_WEB' U_DISK_MAIL='$TOTAL_U_DISK_MAIL'"
133+
s="$s U_DISK_DB='$TOTAL_U_DISK_DB' BANDWIDTH='0'"
134+
s="$s U_BANDWIDTH='$TOTAL_U_BANDWIDTH' U_WEB_DOMAINS='$TOTAL_U_WEB_DOMAINS'"
135+
s="$s U_WEB_SSL='$TOTAL_U_WEB_SSL' U_WEB_ALIASES='$TOTAL_U_WEB_ALIASES'"
136+
s="$s U_DNS_DOMAINS='$TOTAL_U_DNS_DOMAINS'"
137+
s="$s U_DNS_RECORDS='$TOTAL_U_DNS_RECORDS'"
138+
s="$s U_MAIL_DOMAINS='$TOTAL_U_MAIL_DOMAINS' U_MAIL_DKIM='$TOTAL_U_MAIL_DKIM'"
139+
s="$s U_MAIL_ACCOUNTS='$TOTAL_U_MAIL_ACCOUNTS'"
140+
s="$s U_DATABASES='$TOTAL_U_DATABASES'"
141+
s="$s U_CRON_JOBS='$TOTAL_U_CRON_JOBS' U_BACKUPS='$TOTAL_U_BACKUPS'"
142+
143+
if [ -e "$stats" ]; then
144+
# Checking dublicates
145+
check_month=$(grep -n "DATE='$DATE'" $stats|cut -f 1 -d :)
146+
if [ -z "$check_month" ]; then
147+
# Updating as there no dublicates
148+
echo "$s" >> $stats
149+
chmod 660 $stats
150+
else
151+
# Replacing string with new data
152+
sed -i "$check_month s/.*/$s/" $stats
153+
fi
154+
else
155+
# Creating stats log
156+
echo "$s" >$stats
157+
chmod 660 $stats
158+
fi
159+
160+
85161

86162
#----------------------------------------------------------#
87163
# Vesta #

web/list/stats/index.php

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,33 @@
1313
top_panel($user,$TAB);
1414

1515
// Data
16-
exec (VESTA_CMD."v-list-user-stats $user json", $output, $return_var);
17-
$data = json_decode(implode('', $output), true);
18-
$data = array_reverse($data);
19-
unset($output);
20-
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/list_stats.html');
16+
if ($_SESSION['user'] == 'admin') {
17+
18+
if (empty($_GET['user'])) {
19+
exec (VESTA_CMD."v-list-users-stats json", $output, $return_var);
20+
$data = json_decode(implode('', $output), true);
21+
$data = array_reverse($data);
22+
unset($output);
23+
} else {
24+
$v_user = escapeshellarg($_GET['user']);
25+
exec (VESTA_CMD."v-list-user-stats $v_user json", $output, $return_var);
26+
$data = json_decode(implode('', $output), true);
27+
$data = array_reverse($data);
28+
unset($output);
29+
}
30+
31+
exec (VESTA_CMD."v-list-sys-users 'json'", $output, $return_var);
32+
$users = json_decode(implode('', $output), true);
33+
unset($output);
34+
35+
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/list_stats.html');
36+
} else {
37+
exec (VESTA_CMD."v-list-user-stats $user json", $output, $return_var);
38+
$data = json_decode(implode('', $output), true);
39+
$data = array_reverse($data);
40+
unset($output);
41+
include($_SERVER['DOCUMENT_ROOT'].'/templates/user/list_stats.html');
42+
}
2143

2244
// Footer
2345
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');

web/templates/admin/list_rrd.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
<tr>
44
<td style="padding: 12px 0 0 16px">
55
<div style="float:left">
6-
<a class="add" <?php if ((empty($_GET['period'])) || ($_GET['period'] == 'daily')) echo "style='color: #34536A'" ?> href="?period=daily">Daily</a>
7-
<a class="add" <?php if ($_GET['period'] == 'weekly') echo "style='color: #34536A'" ?> href="?period=weekly">Weekly</a>
8-
<a class="add" <?php if ($_GET['period'] == 'monthly') echo "style='color: #34536A'" ?> href="?period=monthly">Monthly</a>
9-
<a class="add" <?php if ($_GET['period'] == 'yearly') echo "style='color: #34536A'" ?> href="?period=yearly">Yearly</a>
6+
<a class="vst" <?php if ((empty($_GET['period'])) || ($_GET['period'] == 'daily')) echo "style='color: #34536A'" ?> href="?period=daily">Daily</a>
7+
<a class="vst" <?php if ($_GET['period'] == 'weekly') echo "style='color: #34536A'" ?> href="?period=weekly">Weekly</a>
8+
<a class="vst" <?php if ($_GET['period'] == 'monthly') echo "style='color: #34536A'" ?> href="?period=monthly">Monthly</a>
9+
<a class="vst" <?php if ($_GET['period'] == 'yearly') echo "style='color: #34536A'" ?> href="?period=yearly">Yearly</a>
1010
</div>
1111
<div style="text-align: right; float: right;">
1212
<form action="/search/" method="get" >

web/templates/admin/list_stats.html

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,24 @@
33
<tr>
44
<td style="padding: 12px 0 0 16px">
55
<div style="float:left">
6+
<form action="/list/stats/" method="get" id="objects">
7+
<a class="vst" <?php if (empty($_GET['user'])) echo "style='color: #34536A'"; ?> href='/list/stats/'>Overall Statistics</a>
8+
<span style="padding: 0 8px;"></span>
9+
<select style="margin:0 2px 0 0px;" name="user">
10+
<option value=''>show per user</option>
11+
<?php
12+
foreach ($users as $key => $value) {
13+
echo "\t\t\t\t<option value=\"".$value."\"";
14+
if ((!empty($v_user)) && ( $value == $_GET['user'])){
15+
echo ' selected';
16+
}
17+
echo ">".$value."</option>\n";
18+
}
19+
?>
20+
</select>
21+
<input type="submit" name="list" value="" class="button" style="width: 37px;font-size: 12px; height: 24px;">
22+
</form>
23+
624
</div>
725
<div style="text-align: right; float: right;">
826
<form action="/search/" method="get" >

web/templates/header.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -205,20 +205,20 @@
205205
text-decoration: underline;
206206
}
207207

208-
.add {
209-
padding: 0 8px 0 3px;
208+
.vst {
209+
padding: 0 8px 0 0;
210210
margin: 0;
211211
font-family: Arial, sans-serif;
212212
text-decoration: none;
213213
color: #8B99A2;
214214
font-size: 12pt;
215215
}
216216

217-
.add:hover {
217+
.vst:hover {
218218
text-decoration: underline;
219219
}
220220

221-
.add:active {
221+
.vst:active {
222222
color: #34536A;
223223
}
224224

0 commit comments

Comments
 (0)