shm_leak_audit.sh 666 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #!/bin/bash
  2. /etc/init.d/corosync status >/dev/null
  3. CS_STATUS=$?
  4. if [ $CS_STATUS -eq 0 ]
  5. then
  6. # corosync running
  7. active=$(corosync-objctl runtime.connections. | grep active | cut -d= -f2)
  8. if [ $active -lt 2 ]
  9. then
  10. FILES=$(ls /dev/shm/qb-*)
  11. for f in $FILES
  12. do
  13. echo $f
  14. done
  15. else
  16. pids=$(corosync-objctl runtime.connections. | grep client_pid | cut -d= -f2)
  17. FILES=$(ls /dev/shm/qb-*)
  18. for f in $FILES
  19. do
  20. found=0
  21. for p in $pids
  22. do
  23. if [[ "$f" =~ "$p" ]]
  24. then
  25. found=1
  26. fi
  27. done
  28. if [ $found -eq 0 ]
  29. then
  30. echo $f
  31. fi
  32. done
  33. fi
  34. else
  35. FILES=$(ls /dev/shm/qb-*)
  36. for f in $FILES
  37. do
  38. echo $f
  39. done
  40. fi
  41. exit 0