groupwise.sh 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. #!/bin/bash
  2. # (c) Michael Honkoop <mhonkoop@comsolve.nl>
  3. # License: GNU General Public License v2
  4. # v1.0:
  5. # - Initial release of the script
  6. # v1.1:
  7. # - Aligned quotation marks around variables cosistently
  8. # v1.2:
  9. # - started refining the script to a more modern bash-style
  10. # v1.3:
  11. # - adapted debug-output
  12. #
  13. # Current active version of the script
  14. SCRIPT_VERSION=1.3
  15. ################################################################
  16. # Global definitions for the script - change to fit your needs #
  17. ################################################################
  18. # Look for a process if a GroupWise MailTransferAgent (MTA) should be running (0 if no MTA is on the client, else set 1)
  19. gwMTA=1
  20. # Look for a process if a GroupWise PostOffice (POA) should be running (0 if no POA is on the client, else set 1)
  21. gwPOA=1
  22. # Look for a process if a GroupWise Internet Agent (GWIA) should be running (0 if no GWIA is on the client, else set 1)
  23. gwIA=1
  24. # Debug switch for development purposes ( 0 for no debug, 1 for debug information )
  25. debug=0
  26. # Service name
  27. SERVICE="GroupWise"
  28. #####################################################################
  29. # DO NOT CHANGE BELOW UNLESS YOU EXACTLY KNOW WHAT YOU ARE DOING #
  30. #####################################################################
  31. if [[ "$gwMTA" -eq 1 ]]
  32. then
  33. if [[ "$debug" -eq 1 ]]
  34. then
  35. echo "DEBUG: $SERVICE gwMTA is enabled in config, checking for the process."
  36. fi
  37. gwMTAProcess=$(pgrep -x gwmta)
  38. if [[ -n "$gwMTAProcess" ]]
  39. then
  40. if [[ "$debug" -eq 1 ]]
  41. then
  42. echo "DEBUG:We found a $SERVICE gwMTA process ID: $gwMTAProcess" >&2
  43. fi
  44. gwMTAListener=$(ss -lpn | grep "$gwMTAProcess" |awk '{print $5}' | grep -E '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'| sed -E ':a;N;$!ba;s/\r{0,1}\n/\\n/g')
  45. if [[ -n "$gwMTAListener" ]]
  46. then
  47. if [[ "$debug" -eq 1 ]]
  48. then
  49. echo "DEBUG:We found atleast one $SERVICE gwMTA listener: $gwMTAListener" >&2
  50. fi
  51. echo "P \"$SERVICE MTA\" status=1;;;1 $SERVICE Mail Transfer Agent is running with PID: $gwMTAProcess and listening.\n $gwMTAListener"
  52. else
  53. if [[ "$debug" -eq 1 ]]
  54. then
  55. echo "DEBUG:We found no listeners for the $SERVICE gwMTA process with process ID: $gwMTAProcess" >&2
  56. fi
  57. echo "P \"$SERVICE MTA\" status=0.5;;;1 $SERVICE Mail Transfer Agent is running with PID: $gwMTAProcess but not listening."
  58. fi
  59. else
  60. if [[ "$debug" -eq 1 ]]
  61. then
  62. echo "DEBUG: $SERVICE gwMTA is enabled in config, but no processes could be found."
  63. fi
  64. echo "P \"$SERVICE MTA\" status=0;;;1 $SERVICE Mail Transfer Agent process is not Running."
  65. fi
  66. else
  67. echo "DEBUG: $SERVICE gwMTA is not enabled in config, skipping." >&2
  68. fi
  69. if [[ "$gwPOA" -eq 1 ]]
  70. then
  71. if [[ "$debug" -eq 1 ]]
  72. then
  73. echo "DEBUG: $SERVICE gwPOA is enabled in config, checking for the process." >&2
  74. fi
  75. gwPOAProcess=$(pgrep -x gwpoa)
  76. if [[ -n "$gwPOAProcess" ]]
  77. then
  78. if [[ "$debug" -eq 1 ]]
  79. then
  80. echo "DEBUG:We found a $SERVICE gwPOA process ID: $gwPOAProcess" >&2
  81. fi
  82. gwPOAListener=$(ss -lpn | grep "$gwPOAProcess" |awk '{print $5}' | grep -E '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | sort -u | sed -E ':a;N;$!ba;s/\r{0,1}\n/\\n/g' )
  83. if [[ -n "$gwPOAListener" ]]
  84. then
  85. if [[ "$debug" -eq 1 ]]
  86. then
  87. echo "DEBUG:We found atleast one $SERVICE gwPOA listener: $gwPOAListener" >&2
  88. fi
  89. echo "P \"$SERVICE POA\" status=1;;;1 $SERVICE Post Office Agent is running with PID: $gwPOAProcess and listening.\n $gwPOAListener"
  90. else
  91. if [[ "$debug" -eq 1 ]]
  92. then
  93. echo "DEBUG:We found no listeners for the $SERVICE gwPOA process with process ID: $gwPOAProcess" >&2
  94. fi
  95. echo "P \"$SERVICE POA\" status=0.5;;;1 $SERVICE Post Office Agent is running with PID: $gwPOAProcess but not listening."
  96. fi
  97. else
  98. if [[ "$debug" -eq 1 ]]
  99. then
  100. echo "DEBUG: $SERVICE gwPOA is enabled in config, but no processes could be found." >&2
  101. fi
  102. echo "P \"$SERVICE POA\" status=0;;;1 $SERVICE Post Office Agent process is not Running."
  103. fi
  104. fi
  105. if [[ "$gwIA" -eq 1 ]]
  106. then
  107. if [[ "$debug" -eq 1 ]]
  108. then
  109. echo "DEBUG: $SERVICE gwIA is enabled in config, checking for the process." >&2
  110. fi
  111. gwIAProcess=$(pgrep -x gwia)
  112. if [[ -n "$gwIAProcess" ]]
  113. then
  114. gwIAListener=$(ss -lpn | grep "$gwIAProcess" |awk '{print $5}' | grep -E '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | sort -u | sed -E ':a;N;$!ba;s/\r{0,1}\n/\\n/g')
  115. if [[ -n "$gwIAListener" ]]
  116. then
  117. if [[ "$debug" -eq 1 ]]
  118. then
  119. echo "DEBUG:We found atleast one $SERVICE gwIA listener: $gwIAListener" >&2
  120. fi
  121. echo "P \"$SERVICE GWIA\" status=1;;;1 $SERVICE Internet Agent is running with PID: $gwIAProcess and listening.\n $gwIAListener"
  122. else
  123. if [[ "$debug" -eq 1 ]]
  124. then
  125. echo "DEBUG:We found no listeners for the $SERVICE gwIA process with process ID: $gwIAProcess" >&2
  126. fi
  127. echo "P \"$SERVICE GWIA\" status=0.5;;;1 $SERVICE Internet Agent is running with PID: $gwIAProcess but not listening."
  128. fi
  129. else
  130. if [[ "$debug" -eq 1 ]]
  131. then
  132. echo "DEBUG: $SERVICE gwIA is enabled in config, but no processes could be found." >&2
  133. fi
  134. echo "P \"$SERVICE GWIA\" status=0;;;1 $SERVICE Internet Agent process is not Running."
  135. fi
  136. fi
  137. gwAdminProcess=$(pgrep -f 'gwadmin\.jar')
  138. if [[ -n "$gwAdminProcess" ]]
  139. then
  140. if [[ "$debug" -eq 1 ]]
  141. then
  142. echo "DEBUG:We found a $SERVICE gwAdmin process ID: $gwAdminProcess"
  143. fi
  144. gwAdminListener=$(ss -lpn| grep "$gwAdminProcess" | awk '{print $5}' | grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | sort -u | sed 's/^::ffff://' | sed -E ':a;N;$!ba;s/\r{0,1}\n/\\n/g')
  145. if [[ -n "$gwAdminListener" ]]
  146. then
  147. if [[ "$debug" -eq 1 ]]
  148. then
  149. echo "DEBUG:We found atleast one $SERVICE gwAdmin listener: $gwAdminListener" >&2
  150. fi
  151. echo "P \"$SERVICE AdminService\" status=1;;;1 $SERVICE AdminService process is running with PID: $gwAdminProcess and listening.\n $gwAdminListener"
  152. else
  153. if [[ "$debug" -eq 1 ]]
  154. then
  155. echo "DEBUG:We found no listeners for the $SERVICE gwAdminService process with process ID: $gwAdminProcess" >&2
  156. fi
  157. echo "P \"$SERVICE AdminService\" status=0.5;;;1 $SERVICE AdminService is running with PID: $gwAdminProcess but not listening."
  158. fi
  159. else
  160. echo "P \"$SERVICE AdminService\" status=0;;;1 $SERVICE AdminService process is not Running."
  161. fi