2007-10-01 19:31:18

Check if FTP server is running

#!/usr/bin/env python
#################################################################
# Who: James Conner
# When: October 1, 2007
# What: FTP service checker
# Version: 0.0.1
# Why: Check if an FTP server is up
#################################################################
# Updates:
# Ver:Who:When:Why
# 0.0.1:James Conner:Oct 01 2007:Initial creation
#################################################################
import os
import sys
import smtplib
import socket
from optparse import OptionParser
from ftplib import FTP

#################################################################
# Global Variables
#################################################################
run_user="bob"
notify_user=["person1@email.com","person2@email.com"]
mailsvr="smtp.your.domain.com"
hostname=socket.gethostname()

#################################################################
# Option Parser
#################################################################
parser = OptionParser(version = "0.0.1")

parser.add_option('-s','--server',
  dest='server_info',
  default='',
  metavar='SVRNAME',
  help=('Server to check'))

parser.add_option('-u','--user',
  dest='user_info',
  default='anonymous',
  metavar='USRNAME',
  help=('Username to log into the server. Default is \'anonymous\'.'))

parser.add_option('-p','--password','--pass',
  dest='pass_info',
  default='person1@email.com',
  metavar='PASSWRD',
  help=('Password to log into the server. Default is \'person1@email.com\'.'))

(opts, arg) = parser.parse_args()

#################################################################
# Functions
#################################################################
def check_options(option,option_name):
  if not option:
    print "ERROR: %s variable has not been assigned!" % option_name
    sys.exit(10)

#################################################################
# Program Execution
#################################################################
check_options(opts.server_info, "server_info")

try:
  ftp = FTP(opts.server_info,opts.user_info,opts.pass_info)
  ftp.quit()
except:
  msg="Subject: FTP on %s is down!" % opts.server_info
  server=smtplib.SMTP(mailsvr,25)
  server.sendmail(run_user+"@"+hostname,notify_user,msg)
  server.quit()
  sys.exit(99)

Tags:   python     |    Perm Link:   Check if FTP server is running



James Conner