1+ # Script Name : powerdown_startup.py
2+ # Author : Craig Richards
3+ # Created : 05th January 2012
4+ # Last Modified :
5+ # Version : 1.0
6+
7+ # Modifications :
8+
9+ # Description : This goes through the server list and pings the machine, if it's up it will load the putty session, if its not it will notify you.
10+
11+ import os # Load the Library Module
12+ import subprocess # Load the Library Module
13+ from time import strftime # Load just the strftime Module from Time
14+
15+ def windows (): # This is the function to run if it detects the OS is windows.
16+ f = open ('server_startup_' + strftime ("%Y-%m-%d" )+ '.log' , 'a' ) # Open the logfile
17+ for server in open ('startup_list.txt' ,'r' ): # Read the list of servers from the list
18+ ret = subprocess .call ("ping -n 3 %s" % server , shell = True ,stdout = open ('NUL' , 'w' ),stderr = subprocess .STDOUT ) # Ping the servers in turn
19+ if ret == 0 : # If you get a response.
20+ f .write ("%s: is alive, loading PuTTY session" % server .strip () + "\n " ) # Write out to the logfile
21+ subprocess .Popen (('putty -load ' + server )) # Load the putty session
22+ else :
23+ f .write ("%s : did not respond" % server .strip () + "\n " ) # Write to the logfile if the server is down
24+
25+ def linux ():
26+ f = open ('server_startup_' + strftime ("%Y-%m-%d" )+ '.log' , 'a' ) # Open the logfile
27+ for server in open ('startup_list.txt' ): # Read the list of servers from the list
28+ ret = subprocess .call ("ping -c 3 %s" % server , shell = True ,stdout = open ('/dev/null' , 'w' ),stderr = subprocess .STDOUT ) # Ping the servers in turn
29+ if ret == 0 : # If you get a response.
30+ f .write ("%s: is alive" % server .strip () + "\n " ) # Print a message
31+ subprocess .Popen (['ssh' , server .strip ()])
32+ else :
33+ f .write ("%s: did not respond" % server .strip () + "\n " )
34+
35+ # End of the functions
36+
37+ # Start of the Main Program
38+
39+ if os .name == "posix" : # If the OS is linux...
40+ linux () # Call the linux function
41+ elif os .name in ("nt" , "dos" , "ce" ): # If the OS is Windows...
42+ windows () # Call the windows function
0 commit comments