groupwise.sh 6.7 KB

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