Update: Check out Nagios which is an open source service monitor. This looks like a good solution. Wish I had found it before I did my little project!
|ServerMonitor is a small java program that monitors a server and sends email to the administrator when the server is not available.I have been having some reliability problems with a server that I depend on and wanted an easy way to be notified if there server had stopped running. This program is very simple to use.
Set smctl.sh to be executable with $chmod u+x
[drew@drewsG5 serveMon]$ chmod u+x smctl.sh [drew@drewsG5 serveMon]$ javac ServerMonitor.java [drew@drewsG5 serveMon]$ ls -la total 16 drwxr-xr-x 5 drew drew 170 May 2 22:22 . drwxr-xr-x 11 drew drew 374 May 2 22:20 .. -rw-r–r– 1 drew drew 3617 May 2 22:22 ServerMonitor.class -rw-r–r– 1 drew drew 5794 May 2 14:22 ServerMonitor.java -rwxr–r– 1 drew drew 493 May 2 22:18 smctl.sh [drew@drewsG5 serveMon]$
# Edit these lines for your particular setup HOST=www.host.com PORT=80 INTERVAL=10 REFHOST=refhost REFPORT=81 ADMIN=you@localhost SMTPHOST=mail.localhost
To see that everything is running correctly $tail -f log.out
[drew@drewsG5 serverMon]$ ./smctl.sh start [drew@drewsG5 serverMon]$ tail -f log.out Starting ServerMonitor. host:mail.host.edu port:25 refHost:www.host.edu refPort:80 interval:10 adminEmail:you@localhost smtpHost:mail.smtp.localhost [Mon May 03 17:18:31 PDT 2004] mail.host.edu seems to be running.
Note that only one email will be sent on server failure. When the message is received, you should examine log.out for details about the failure. Then I suggest that you stop and start ServerMonitor again to check for the next problem.
# TODO: check is pid file already exists – and ServerMonitor is already running