arw_monitor.sh 939 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/bin/bash
  2. source /etc/profile
  3. cur_time=$(date "+%Y-%m-%d-%H-%M-%S")
  4. df_dirs=(${XYZ_DF_DIRS//:/ })
  5. du_dirs=(${XYZ_DU_DIRS//:/ })
  6. declare -A reports
  7. reports=(['cur_time']=$cur_time)
  8. function df_check() {
  9. # shellcheck disable=SC2068
  10. for dir in ${df_dirs[@]}
  11. do
  12. ret=$(df -h | grep $dir | awk 'BEGIN{OFS=","}{print $2,$4}')
  13. key=${dir}
  14. reports[$key]=$ret
  15. done
  16. }
  17. function du_check() {
  18. # shellcheck disable=SC2068
  19. for dir in ${du_dirs[@]}
  20. do
  21. if [ -d "$dir" ]; then
  22. cd $dir
  23. ret=$(du -h -d 0)
  24. key=${dir}
  25. reports[$key]=$ret
  26. fi
  27. done
  28. }
  29. df_check
  30. du_check
  31. str_report=''
  32. for key in $(echo ${!reports[*]})
  33. do
  34. if [ ! -n "$str_report" ]; then
  35. str_report="$key:${reports[$key]}"
  36. else
  37. str_report="$str_report#$key:${reports[$key]}"
  38. fi
  39. done
  40. redis_host=$XYZ_REDIS_HOST
  41. netip=$XYZ_NETIP
  42. echo "HSET nc_disk_monitor $netip '$str_report'" | redis-cli -h $redis_host -p 6379