Skip to content

knipknap/exscript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9d5b035 · Aug 24, 2023
Aug 24, 2023
Mar 22, 2017
Aug 28, 2018
Aug 22, 2017
Nov 8, 2020
Mar 12, 2017
Mar 30, 2017
Oct 24, 2017
Dec 8, 2009
Mar 11, 2017
Mar 5, 2017
Nov 27, 2018
Jan 24, 2019
Mar 5, 2017
Feb 4, 2011
Nov 19, 2017
Jul 11, 2015
Nov 19, 2017
Mar 25, 2017
Mar 29, 2017

Repository files navigation

Exscript

Build Status Coverage Status Code Climate Documentation Status Reviewed by Hound

Summary

Exscript is a Python module and a template processor for automating network connections over protocols such as Telnet or SSH. We attempt to create the best possible set of tools for working with Telnet and SSH.

Exscript also provides a set of tools and functions for sysadmins, that simplify regular expression matching, reporting by email, logging, or syslog handling, CSV parsing, ip address handling, template processing, and many more.

Exscript may be used to automate sessions with routers from Cisco, Juniper, OneAccess, Huawei, or any others. If you want to configures machines running Linux/Unix, IOS, IOS-XR, JunOS, VRP, or any other operating system that can be used with a terminal, Exscript is what you are looking for.

Do you need commercial support?

Exscript is supported by Procedure 8. Get in touch if you need anything!

Method 1: Using Exscript with Python

Simple

from Exscript.protocols import SSH2
from Exscript.util.interact import read_login

conn = SSH2()
conn.connect('localhost')
conn.login(read_login())
conn.execute('uname -a')

Slightly more advanced (multi threaded)

from Exscript.util.start import start
from Exscript.util.file import get_hosts_from_file
from Exscript.util.file import get_accounts_from_file

def do_something(job, host, conn):
    conn.execute('uname -a')

accounts = get_accounts_from_file('accounts.cfg')
hosts = get_hosts_from_file('myhosts.txt')
start(accounts, hosts, do_something, max_threads=2)

Method 2: Using the Exscript command line tool

Create a file named test.exscript with the following content:

uname -a

To run this Exscript template, just start Exscript using the following command:

exscript test.exscript ssh://localhost

Awesome fact: Just replace ssh:// by telnet:// and it should still work with Telnet devices.

Documentation

Full documentation is here:

http://exscript.readthedocs.io