v-update-user-disk 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #!/bin/bash
  2. # info: update user disk usage
  3. # options: USER
  4. # labels: panel
  5. #
  6. # example: v-update-user-disk admin
  7. #
  8. # The functions recalculates disk usage and updates database.
  9. #----------------------------------------------------------#
  10. # Variable&Function #
  11. #----------------------------------------------------------#
  12. # Argument definition
  13. user=$1
  14. # Includes
  15. # shellcheck source=/usr/local/hestia/func/main.sh
  16. source $HESTIA/func/main.sh
  17. # shellcheck source=/usr/local/hestia/conf/hestia.conf
  18. source $HESTIA/conf/hestia.conf
  19. #----------------------------------------------------------#
  20. # Verifications #
  21. #----------------------------------------------------------#
  22. check_args '1' "$#" 'USER'
  23. is_format_valid 'user'
  24. is_object_valid 'user' 'USER' "$user"
  25. #----------------------------------------------------------#
  26. # Action #
  27. #----------------------------------------------------------#
  28. # Saving old IFS
  29. OLDIFS=$IFS
  30. IFS=$(echo -en "\n\b")
  31. #Starting update disk space excluding web, mail, conf directory
  32. disk_usage='0'
  33. disk_usage=$(du -shm $HOMEDIR/$user --exclude $HOMEDIR/$user/web --exclude $HOMEDIR/$user/mail --exclude $HOMEDIR/$user/conf |cut -f 1 )
  34. # Restoring old IFS
  35. IFS=$OLDIFS
  36. # Updating disk value in config
  37. update_user_value "$user" '$U_DISK_DIRS' "$disk_usage"
  38. #----------------------------------------------------------#
  39. # Hestia #
  40. #----------------------------------------------------------#
  41. # Recalculating user disk space
  42. recalc_user_disk_usage
  43. # Logging
  44. log_event "$OK" "$ARGUMENTS"
  45. exit