#!/bin/bash # info: update domains bandwidth usage # options: USER # # The function recalculates bandwidth usage for all user webdomains. #----------------------------------------------------------# # Variable&Function # #----------------------------------------------------------# # Argument definition user=$1 # Includes source $VESTA/func/main.sh source $VESTA/func/domain.sh source $VESTA/conf/vesta.conf #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# check_args '1' "$#" 'USER' is_format_valid 'user' is_system_enabled "$WEB_SYSTEM" 'WEB_SYSTEM' is_object_valid 'user' 'USER' "$user" "$user" #----------------------------------------------------------# # Action # #----------------------------------------------------------# for domain in $(search_objects 'web' 'SUSPENDED' "no" 'DOMAIN'); do # Reset BW counter on the start of the month if [ "$(date +%d)" = '01' ]; then update_object_value 'web' 'DOMAIN' "$domain" '$U_BANDWIDTH' '0' fi log_file="/var/log/$WEB_SYSTEM/domains/$domain.bytes" bytes=0 # Parsing log while read line; do if [[ "$line" =~ ^[0-9]+$ ]]; then line=${line#0} if [ ! -z "$line" ]; then bytes=$(($bytes + $line)) fi fi done < $log_file # Converting to Mb mb=$(echo "$bytes / 1024 / 1024"|bc) # Nulling log echo > $log_file get_domain_values 'web' bandwidth=$((U_BANDWIDTH + mb)) # Updating bandwidth value in config update_object_value 'web' 'DOMAIN' "$domain" '$U_BANDWIDTH' "$bandwidth" done #----------------------------------------------------------# # Vesta # #----------------------------------------------------------# # Recalculating user bandwidth recalc_user_bandwidth_usage # No Logging #log_event "$OK" "$ARGUMENTS" exit