agent.sh 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #!/bin/bash
  2. filename=$(basename $0)
  3. cnt=`pgrep -c $filename`
  4. if [ $cnt -gt 1 ]; then
  5. echo "Already Running..."
  6. exit 0
  7. fi
  8. echo "Running Start..."
  9. SSIP_API_URI="http://192.168.202.106:8444/api/system-status2"
  10. SSIP_API_TIMEOUT=3
  11. HEADER_CONTEXT_TYPE="Content-Type: application/json"
  12. HostName=$(hostname)
  13. UpTime=""
  14. MemoryUsage=0
  15. DiskUsage=0
  16. CpuLoad=0
  17. function check_health {
  18. #Memory 사용율
  19. MemoryUsage=$(free -m | awk 'NR==2{printf "%.2f", $3*100/$2 }')
  20. #DISK 사용율
  21. totaldisk=$(df -P | grep -v ^Filesystem | awk '{sum += $2} END { print sum; }')
  22. useddisk=$(df -P | grep -v ^Filesystem | awk '{sum += $3} END { print sum; }')
  23. DiskUsage=$((100*$useddisk/$totaldisk))
  24. #CPU 부하
  25. CpuLoad=$(top -bn1 | grep load | awk '{printf "%.2f", $(NF-2)}')
  26. }
  27. function call_system_status_api {
  28. # Call System Status Save REST API
  29. PAYLOAD='{"hostName" : "'${HostName}'",
  30. "memoryUsage" : '${MemoryUsage}',
  31. "diskUsage" : '${DiskUsage}',
  32. "cpuLoad" : '${CpuLoad}'
  33. }'
  34. echo -e "api call:"
  35. api_result=$(curl -d "${PAYLOAD}" -X POST $SSIP_API_URI -H "$HEADER_CONTEXT_TYPE" --connect-timeout $SSIP_API_TIMEOUT)
  36. # Result
  37. echo -e ""
  38. echo -e "api call result: ${api_result} "
  39. }
  40. function print_health {
  41. echo -e "
  42. Hostname : $HostName
  43. Memory Usage : $MemoryUsage
  44. Disk Usage : $DiskUsage
  45. CPU Load : $CpuLoad "
  46. }
  47. while :; do
  48. check_health;
  49. call_system_status_api;
  50. print_health;
  51. sleep 10
  52. done