v_update_user_disk 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/bin/bash
  2. # info: update user disk usage
  3. # options: user
  4. #
  5. # The functions recalculates disk usage and updates database.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument defenition
  10. user=$1
  11. # Importing variables
  12. source $VESTA/conf/vars.conf
  13. source $V_CONF/vesta.conf
  14. source $V_FUNC/shared.func
  15. #----------------------------------------------------------#
  16. # Verifications #
  17. #----------------------------------------------------------#
  18. # Checking arg number
  19. check_args '1' "$#" 'user'
  20. # Checking argument format
  21. format_validation 'user'
  22. # Checking user
  23. is_user_valid
  24. #----------------------------------------------------------#
  25. # Action #
  26. #----------------------------------------------------------#
  27. # Saving old IFS
  28. OLDIFS=$IFS
  29. IFS=$(echo -en "\n\b")
  30. # Defining directory list
  31. dir_list=$(ls $V_HOME/$user/ |grep -v '^web$' | grep -v '^mail$' |\
  32. grep -v '^conf$')
  33. # Starting update disk loop
  34. disk_usage='0'
  35. for dir in $dir_list; do
  36. dir_disk=$(du -shm "$V_HOME/$user/$dir"|cut -f 1 )
  37. disk_usage=$((disk_usage + dir_disk))
  38. done
  39. # Restoring old IFS
  40. IFS=$OLDIFS
  41. # Updating disk value in config
  42. update_user_value "$user" '$U_DIR_DISK' "$disk_usage"
  43. #----------------------------------------------------------#
  44. # Vesta #
  45. #----------------------------------------------------------#
  46. # Recalculating user disk space
  47. disk_size=$(get_usr_disk)
  48. update_user_value "$user" '$U_DISK' "$disk_size"
  49. # Logging
  50. log_event 'system' "$V_EVENT"
  51. exit