Python Script that SSH to a switch and execute commands for ‘x’ times

Below is a sample python code that can login to a switch via SSH and gather few command outputs and display it on console. SSH sessions are repeated for ‘x’ number of times.

Paramiko SSH module is used in this script. Paramiko is a native Python implementation of SSH. This module can be installed on a linux system using pip. commands are:

#sudo apt-get install python-pip
#sudo pip install paramiko

Code:

#!/usr/pkg/bin/python

#Importing modules
import paramiko
import sys
import time

#setting parameters like host IP, username, passwd and number of iterations to gather cmds
HOST = "10.11.214.143"
USER = "admin"
PASS = "passwd"
ITERATION = 3

#A function that logins and execute commands
def fn():
  client1=paramiko.SSHClient()
  #Add missing client key
  client1.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  #connect to switch
  client1.connect(HOST,username=USER,password=PASS)
  print "SSH connection to %s established" %HOST
  #Gather commands and read the output from stdout
  stdin, stdout, stderr = client1.exec_command('show version\n')
  print stdout.read()
  stdin, stdout, stderr = client1.exec_command('show alarms | no-more\n')
  print stdout.read()
  stdin, stdout, stderr = client1.exec_command( 'show processes memory | no-more\n')
  print stdout.read()
  client1.close()
  print "Logged out of device %s" %HOST

#for loop to call above fn x times. Here x is set to 3
for x in xrange(ITERATION):
  fn()
  print "%s Iteration/s completed" %(x+1)
  print "********"
  time.sleep(5) #sleep for 5 seconds

The script is self explainable with comments added for clarity.

Advertisements
This entry was posted in Scripting and tagged , , , , . Bookmark the permalink.

2 Responses to Python Script that SSH to a switch and execute commands for ‘x’ times

  1. Ravi says:

    I don’t see “print stdout.read()” printed out in the output

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s