使用Python ping 服务器


```py import os # Load the Library Module import subprocess # Load the Library Module import sys # Load the Library Module

filename = sys.argv[0] # Sets a variable for the script name if '-h' in sys.argv or '--h' in sys.argv or '-help' in sys.argv or '--help' in sys.argv: # Help Menu if called print ''' You need to supply the application group for the servers you want to ping, i.e. dms swaps

Followed by the site i.e. 155 bromley''' sys.exit(0) else:

if (len(sys.argv) < 3):                                                                 # If no arguments are passed,display the help/instructions on how to run the script
    sys.exit ('\nYou need to supply the app group. Usage : ' + filename + ' followed by the application group i.e. \n \t dms or \n \t swaps \n then the site i.e. \n \t 155 or \n \t bromley')

appgroup = sys.argv[1]                                                          # Set the variable appgroup as the first argument you supply
site = sys.argv[2]                                                                  # Set the variable site as the second argument you supply

if os.name == "posix":                                                          # Check the os, if it's linux then
    myping = "ping -c 2 "                                                           # This is the ping command
elif os.name in ("nt", "dos", "ce"):                                            # Check the os, if it's windows then
    myping = "ping -n 2 "                                                           # This is the ping command

if 'dms' in sys.argv:                                                                   # If the argument passed is dms then
  appgroup = 'dms'                                                                  # Set the variable appgroup to dms
elif 'swaps' in sys.argv:                                                           # Else if the argment passed is swaps then
  appgroup = 'swaps'                                                                # Set the variable appgroup to swaps

if '155' in sys.argv:                                                                   # If the argument passed is 155 then
  site = '155'                                                                          # Set the variable site to 155
elif 'bromley' in sys.argv:                                                         # Else if the argument passed is bromley
  site = 'bromley'                                                                  # Set the variable site to bromley

logdir = os.getenv("logs") # Set the variable logdir by getting the OS environment logs logfile = 'ping' + appgroup + '' + site + '.log' # Set the variable logfile, using the arguments passed to create the logfile logfilename = os.path.join(logdir, logfile) # Set the variable logfilename by joining logdir and logfile together confdir = os.getenv("my_config") # Set the variable confdir from the OS environment variable - 1.2 conffile = (appgroup + 'servers' + site + '.txt') # Set the variable conffile - 1.2 conffilename = os.path.join(confdir, conffile) # Set the variable conffilename by joining confdir and conffile together - 1.2

f = open(logfilename, "w") # Open a logfile to write out the output for server in open(conffilename): # Open the config file and read each line - 1.2 ret = subprocess.call(myping + server, shell=True, stdout=f, stderr=subprocess.STDOUT) # Run the ping command for each server in the list. if ret == 0: # Depending on the response f.write (server.strip() + " is alive" + "\n") # Write out that you can receive a reponse else: f.write (server.strip() + " did not respond" + "\n") # Write out you can't reach the box

print ("\n\tYou can see the results in the logfile : " + logfilename); # Show the location of the logfile ···