v-list-users-stats 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. #!/bin/bash
  2. # info: list overall user stats
  3. # options: [FORMAT]
  4. #
  5. # The function for listing overall user statistics
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. format=${1-shell}
  11. # Includes
  12. source $VESTA/func/main.sh
  13. # JSON list function
  14. json_list() {
  15. IFS=$'\n'
  16. i=1
  17. objects=$(grep DATE $VESTA/data/users/admin/overall_stats.log |wc -l)
  18. echo "{"
  19. while read str; do
  20. eval $str
  21. echo -n ' "'$DATE'": {
  22. "TIME": "'$TIME'",
  23. "PACKAGE": "'$PACKAGE'",
  24. "IP_OWNED": "'$IP_OWNED'",
  25. "DISK_QUOTA": "'$DISK_QUOTA'",
  26. "U_DISK": "'$U_DISK'",
  27. "U_DISK_DIRS": "'$U_DISK_DIRS'",
  28. "U_DISK_WEB": "'$U_DISK_WEB'",
  29. "U_DISK_MAIL": "'$U_DISK_MAIL'",
  30. "U_DISK_DB": "'$U_DISK_DB'",
  31. "BANDWIDTH": "'$BANDWIDTH'",
  32. "U_BANDWIDTH": "'$U_BANDWIDTH'",
  33. "U_WEB_DOMAINS": "'$U_WEB_DOMAINS'",
  34. "U_WEB_SSL": "'$U_WEB_SSL'",
  35. "U_WEB_ALIASES": "'$U_WEB_ALIASES'",
  36. "U_DNS_DOMAINS": "'$U_DNS_DOMAINS'",
  37. "U_DNS_RECORDS": "'$U_DNS_RECORDS'",
  38. "U_MAIL_DOMAINS": "'$U_MAIL_DOMAINS'",
  39. "U_MAIL_DKIM": "'$U_MAIL_DKIM'",
  40. "U_MAIL_ACCOUNTS": "'$U_MAIL_ACCOUNTS'",
  41. "U_DATABASES": "'$U_DATABASES'",
  42. "U_CRON_JOBS": "'$U_CRON_JOBS'",
  43. "U_BACKUPS": "'$U_BACKUPS'",
  44. "U_USERS": "'$U_USERS'"
  45. }'
  46. if [ "$i" -lt "$objects" ]; then
  47. echo ','
  48. else
  49. echo
  50. fi
  51. ((i++))
  52. done < <(cat $VESTA/data/users/admin/overall_stats.log)
  53. echo '}'
  54. }
  55. # SHELL list function
  56. shell_list() {
  57. IFS=$'\n'
  58. echo "DATE USER WEB DNS MAIL DB BACKUPS IP DISK BW"
  59. echo "---- ---- --- --- ---- -- ------- -- ---- --"
  60. while read str; do
  61. eval $str
  62. if [ -z "$U_USERS" ]; then
  63. U_USERS=1
  64. fi
  65. echo -n "$DATE $U_USERS $U_WEB_DOMAINS $U_DNS_DOMAINS "
  66. echo -n "$U_MAIL_DOMAINS $U_DATABASES $U_BACKUPS $IP_OWNED "
  67. echo "$U_DISK $U_BANDWIDTH"
  68. done < <(cat $VESTA/data/users/admin/overall_stats.log)
  69. }
  70. # PLAIN list function
  71. plain_list() {
  72. IFS=$'\n'
  73. while read str; do
  74. eval $str
  75. echo -ne "$DATE\t$TIME\t$PACKAGE\t$IP_OWNED\t$DISK_QUOTA\t$U_DISK\t"
  76. echo -ne "$U_DISK_DIRS\t$U_DISK_WEB\t$U_DISK_MAIL\t$U_DISK_DB\t"
  77. echo -ne "$BANDWIDTH\t$U_BANDWIDTH\t$U_WEB_DOMAINS\t$U_WEB_SSL\t"
  78. echo -ne "$U_WEB_ALIASES\t$U_DNS_DOMAINS\t$U_DNS_RECORDS\t"
  79. echo -ne "$U_MAIL_DOMAINS\t$U_MAIL_DKIM\t$U_MAIL_ACCOUNTS\t"
  80. echo -e "$U_DATABASES\t$U_CRON_JOBS\t$U_BACKUPS\t$U_USERS"
  81. done < <(cat $VESTA/data/users/admin/overall_stats.log)
  82. }
  83. # CSV list function
  84. csv_list() {
  85. IFS=$'\n'
  86. echo -n "DATE,TIME,PACKAGE,IP_OWNED,DISK_QUOTA,U_DISK,"
  87. echo -n "U_DISK_DIRS,U_DISK_WEB,U_DISK_MAIL,U_DISK_DB,"
  88. echo -n "BANDWIDTH,U_BANDWIDTH,U_WEB_DOMAINS,U_WEB_SSL,"
  89. echo -n "U_WEB_ALIASES,U_DNS_DOMAINS,U_DNS_RECORDS,"
  90. echo -n "U_MAIL_DOMAINS,U_MAIL_DKIM,U_MAIL_ACCOUNTS,"
  91. echo "U_DATABASES,U_CRON_JOBS,U_BACKUPS,U_USERS"
  92. while read str; do
  93. eval $str
  94. echo -n "$DATE,$TIME,$PACKAGE,$IP_OWNED,$DISK_QUOTA,$U_DISK,"
  95. echo -n "$U_DISK_DIRS,$U_DISK_WEB,$U_DISK_MAIL,$U_DISK_DB,"
  96. echo -n "$BANDWIDTH,$U_BANDWIDTH,$U_WEB_DOMAINS,$U_WEB_SSL,"
  97. echo -n "$U_WEB_ALIASES,$U_DNS_DOMAINS,$U_DNS_RECORDS,"
  98. echo -n "$U_MAIL_DOMAINS,$U_MAIL_DKIM,$U_MAIL_ACCOUNTS,"
  99. echo "$U_DATABASES,$U_CRON_JOBS,$U_BACKUPS,$U_USERS"
  100. done < <(cat $VESTA/data/users/admin/overall_stats.log)
  101. }
  102. #----------------------------------------------------------#
  103. # Verifications #
  104. #----------------------------------------------------------#
  105. check_args '0' "$#" '[FORMAT]'
  106. #----------------------------------------------------------#
  107. # Action #
  108. #----------------------------------------------------------#
  109. # Defining config
  110. conf=$VESTA/data/users/admin/overall_stats.log
  111. if [ ! -e "$conf" ]; then
  112. touch $conf
  113. fi
  114. # Listing data
  115. case $format in
  116. json) json_list ;;
  117. plain) plain_list ;;
  118. csv) csv_list ;;
  119. shell) shell_list |column -t ;;
  120. esac
  121. #----------------------------------------------------------#
  122. # Vesta #
  123. #----------------------------------------------------------#
  124. exit