v-update-web-domain-traff 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #!/bin/bash
  2. # info: update domain bandwidth usage
  3. # options: USER DOMAIN
  4. #
  5. # The function recalculates bandwidth usage for specific domain.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. user=$1
  11. domain=$2
  12. # Includes
  13. source $VESTA/func/main.sh
  14. source $VESTA/func/domain.sh
  15. source $VESTA/conf/vesta.conf
  16. # Additional argument formatting
  17. format_domain
  18. format_domain_idn
  19. #----------------------------------------------------------#
  20. # Verifications #
  21. #----------------------------------------------------------#
  22. check_args '2' "$#" 'USER DOMAIN'
  23. is_format_valid 'user' 'domain'
  24. is_system_enabled "$WEB_SYSTEM" 'WEB_SYSTEM'
  25. is_object_valid 'user' 'USER' "$user"
  26. is_object_unsuspended 'user' 'USER' "$user"
  27. is_object_valid 'web' 'DOMAIN' "$domain"
  28. is_object_unsuspended 'web' 'DOMAIN' "$domain"
  29. #----------------------------------------------------------#
  30. # Action #
  31. #----------------------------------------------------------#
  32. # Defining log file
  33. log_file="/var/log/$WEB_SYSTEM/domains/$domain.bytes"
  34. # Defining bytes
  35. bytes=0
  36. # Parsing log
  37. while read line; do
  38. if [[ "$line" =~ ^[0-9]+$ ]]; then
  39. line=${line#0}
  40. if [ ! -z "$line" ]; then
  41. bytes=$(($bytes + $line))
  42. fi
  43. fi
  44. done < $log_file
  45. # Converting to Mb
  46. mb=$(echo "$bytes / 1024 / 1024"|bc)
  47. # Nulling log
  48. echo > $log_file
  49. #----------------------------------------------------------#
  50. # Vesta #
  51. #----------------------------------------------------------#
  52. # Reset counter on the start of the month
  53. if [ "$(date +%d)" = '01' ]; then
  54. update_object_value 'web' 'DOMAIN' "$domain" '$U_BANDWIDTH' '0'
  55. fi
  56. # Parsing old value
  57. get_domain_values 'web'
  58. # Defining new value
  59. bandwidth=$((U_BANDWIDTH + mb))
  60. # Updating bandwidth value in config
  61. update_object_value 'web' 'DOMAIN' "$domain" '$U_BANDWIDTH' "$bandwidth"
  62. # Logging
  63. log_event "$OK" "$ARGUMENTS"
  64. exit