Revision: 66310
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at April 16, 2014 05:41 by deanhouseholder
Initial Code
#!/bin/bash
declare -A SERVERS
declare -A APPS
# Dumb trick to retain order in an associate array
ENV_LIST=(Dev Test Stage1 Stage2 Prod1 Prod2)
PORT_LIST=(3000 3001 3002 3003 3004 3005)
# Server list
SERVERS=(
["Dev"]="dev_hostname"
["Test"]="test_hostname"
["Stage1"]="stage1_hostname"
["Stage2"]="stage2_hostname"
["Prod1"]="prod1_hostname"
["Prod2"]="prod2_hostname"
)
# App list
APPS=(
[3000]="App Name 1"
[3001]="App Name 2"
[3002]="App Name 3"
[3003]="App Name 4"
[3004]="App Name 5"
[3005]="App Name 6"
)
echo
echo "####"
echo "#### Checking application servers..."
echo "####"
for ENVIRONMENT in ${ENV_LIST[@]}; do
echo
echo "$ENVIRONMENT (${SERVERS[$ENVIRONMENT]})"
echo ---------------------
for PORT in ${PORT_LIST[@]}; do
RSLT=$(nc -w4 -vz ${SERVERS[$ENVIRONMENT]} $PORT 2>&1)
if [ $? = 0 ]; then
printf "%-25s %s\n" "${APPS[$PORT]}" " on $PORT is UP"
else
echo "$RSLT"
fi
done
done
Initial URL
Initial Description
This script allows you to monitor a list of applications each running on servers in different environments. For example, these can be webservers: apache/nginx/etc., application servers: tomcat/nodejs/IIS/etc., database servers: mysql/oracle/etc., or anything else that listens on a port. Instructions: 1) Edit the key/value pairs in the arrays: ENV_LIST, PORT_LIST, SERVERS, APPS with the data for your own applications 2) Run: ./scriptname.sh Requirements: This script does require "nc" to be installed. Note: This works both on linux and cygwin.
Initial Title
Check to see if a list of applications are running by testing host and port
Initial Tags
server, apache
Initial Language
Bash