Skip to content
View mryerlan's full-sized avatar
Block or Report

Block or report mryerlan

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
mryerlan/README.md

switch-ssh-go

A packaged SSH library for switches (huawei,h3c,cisco). A session pool is implemented to avoid repeated connection devices and automatically clear sessions that are not used for 10 minutes.

Installation

$ go get github.com/shenbowei/switch-ssh-go

Basic Usage

In Code

switch-ssh-go implemented a connection pool to save the session, and each session verifies its availability before executing the commands, so you can call the following method repeatedly (not repeatedly connecting the device).

//get the switch brand(vendor), include h3c,huawei and cisco
brand, err := ssh.GetSSHBrand(user, password, ipPort)

//run the cmds in the switch, and get the execution results
result, err := ssh.RunCommands(user, password, ipPort, cmds...)

//run the cmds in the switch with the device brand(the first connection will be faster), and get the execution results
result, err := ssh.RunCommandsWithBrand(user, password, ipPort, ssh.CISCO, cmds...)

example

package main

import (
    "fmt"
    "github.com/shenbowei/switch-ssh-go"
)

func main() {
    user := "your device ssh name"
    password := "your device ssh password"
    ipPort := "ip:22"

    //get the switch brand(vendor), include h3c,huawei and cisco
    brand, err := ssh.GetSSHBrand(user, password, ipPort)
    if err != nil {
        fmt.Println("GetSSHBrand err:\n", err.Error())
    }
    fmt.Println("Device brand is:\n", brand)

    //run the cmds in the switch, and get the execution results
    cmds := make([]string, 0)
    cmds = append(cmds, "dis clock")
    cmds = append(cmds, "dis vlan")
    result, err := ssh.RunCommands(user, password, ipPort, cmds...)
    if err != nil {
        fmt.Println("RunCommands err:\n", err.Error())
    }
    fmt.Println("RunCommands result:\n", result)
}

Licenses

switch-ssh-go is released under the MIT License.

Popular repositories

  1. mryerlan mryerlan Public

    Config files for my GitHub profile.

    Go

  2. switch-ssh-go switch-ssh-go Public

    Forked from shenbowei/switch-ssh-go

    A packaged SSH library for switches (huawei,h3c,cisco)

    Go

  3. zabbix zabbix Public

    Forked from rmavrichev/zabbix

    ZABBIX COLLECTION

    Perl

  4. TR_map TR_map Public

    Python