v_upd_sys_user_disk 1.6 KB

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