Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!usr/bin/env python3
- # Harris Plaisted
- # Program 2 remote monitoring of playground hosts
- import argparse, paramiko, getpass, re
- class AllowAnythingPolicy(paramiko.MissingHostKeyPolicy):
- def missing_host_key(self, client, hostname, key):
- return
- def main(hostname,username,password):
- client =paramiko.SSHClient()
- client.set_missing_host_key_policy(AllowAnythingPolicy())
- client.connect(hostname,username=username,password=password)
- print('vital statistics for server: ' + args.hostname)
- outputs =['p','re','set']
- counter = 0
- for command in 'uptime','netstat -atun','ps -ef':
- stdin, stdout, stderr = client.exec_command(command)
- stdin.close()
- # print(repr(stdout.read()))
- outputs[counter] = stdout.read()
- stdout.close()
- stderr.close()
- counter += 1
- client.close()
- # search the uptime string to extract the data we need
- days ='0'
- if 'day' in outputs[0]:
- match = re.search('([0-9]+)\s+day',outputs[0])
- days = str(int(match.group(1)))
- print('--------------------------------------------')
- print('Server Uptime: ' + days + ' days')
- print('--------------------------------------------')
- print('open network ports: '+repr(outputs[1]))
- print('--------------------------------------------')
- print('running processes: '+repr(outputs[2]))
- if __name__ =='__main__':
- parser = argparse.ArgumentParser(description='Connect over SSH')
- parser.add_argument('hostname', help='remote machine name')
- parser.add_argument('username', help='Username on the remote machine')
- args = parser.parse_args()
- password = getpass.getpass('Password:')
- main(args.hostname, args.username, password)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement