Sponsored Content
Top Forums Shell Programming and Scripting Expect script to save configuration from a router Post 302949265 by axexandru on Wednesday 8th of July 2015 02:01:50 PM
Old 07-08-2015
Hy,

I got that figured out, right now I am trying to do a foreach loop, I want this script to read a file that have some hosts in it and save the config for each one:

Here is the code that I am trying:

Code:
#!/usr/bin/tclsh
package require Expect
log_user 0
match_max -d 10000000
set timeout 30

set tdate [clock format [clock seconds] -format %Y%m%d]

#set host 192.168.255.100
set user mktbk\r
set pass password\r


foreach {host} {argv0} {





set name $tdate-$host
spawn telnet $host

expect "Login: "
exp_send $user

expect "Password: "
exp_send $pass

expect "> "
exp_send "export\r"

expect "> "
exp_send "quit\r"
expect eof

set fd [ open $name w ]
puts $fd $expect_out(buffer)
close $fd

}

The error that i get is:

Code:
[alex@samba scripts]$ ./script.sh host.txt 
send: spawn id exp4 not open
    while executing
"exp_send $user"
    ("foreach" body line 11)
    invoked from within
"foreach {host} {argv0} {





set name $tdate-$host     
spawn telnet $host

expect "Login: " 
exp_send $user

expect "Password: "
exp_send $pass

exp..."
    (file "./script.sh" line 14)
[alex@samba scripts]$

Got any ideas?

Thanks
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

strange expect script behavior, or am i misunderstanding expect scripting?

Hello to all...this is my first post (so please go easy). :) I feel pretty solid at expect scripting, but I'm running into an issue that I'm not able to wrap my head around. I wrote a script that is a little advanced for logging into a remote Linux machine and changing text in a file using sed.... (2 Replies)
Discussion started by: v1k0d3n
2 Replies

2. UNIX for Dummies Questions & Answers

how to save the output of command in tcl/expect

hi, everyone: I just wonder how to save the output of command, I mean everything, save as a string into a variable. another question is I try to ls the details of a directory, but it works in the shell, not in the script. for example code: ls -ltr *se100* | grep ^- | tail -1 | awk '... (1 Reply)
Discussion started by: allenxiao7
1 Replies

3. Shell Programming and Scripting

Need help with Expect script for Cisco IPS Sensors, Expect sleep and quoting

This Expect script provides expect with a list of IP addresses to Cisco IPS sensors and commands to configure Cisco IPS sensors. The user, password, IP addresses, prompt regex, etc. have been anonymized. In general this script will log into the sensors and send commands successfully but there are... (1 Reply)
Discussion started by: genewolfe
1 Replies

4. Shell Programming and Scripting

Expect, save to file and remove before prompt

I have an Expect script which works very well. It logs into my remote routers and runs some commands and then to the next until finished. I need two things, first I need to save the output to a file from where the log_user 1 begins. expect << EOF set timeout 15 #set var "exit " match_max... (1 Reply)
Discussion started by: numele
1 Replies

5. Linux

How to save crontab configuration when using SSH?

Hi, I'm trying to save a crontab configuration using SSH, acessing a Linux machine from a Windows desktop. So, in the prompt I type "crontab -e", to edit crontab, and a window is opened. But after writing the changes, I press Save button but it seems not working, because when... (1 Reply)
Discussion started by: Roger75
1 Replies

6. Shell Programming and Scripting

Expect script help needed- script failing if router unavailable

Hey all. Sometimes I'm tasked to change some router configs for the entire network (over 3,000 Cisco routers). Most of the time its a global config parameter so its done with a loop and an IP list as its the same configuration change for all routers. This is working OK. However, sometimes an... (3 Replies)
Discussion started by: mrkz1974
3 Replies

7. IP Networking

How to show Cisco Router Running Configuration in Third Party Application

Hey everyone, I have a few question. 1. Is it possible to display cisco 'show run' output command to the application ?? 2. And is there any ways to log in to the router instead of using telnet from telnet application??? Thanks in advance (0 Replies)
Discussion started by: franzramadhan
0 Replies

8. Programming

Reading a router configuration file

Hello C specialists, I'm trying to write a program to read out a binary configuration file produced by a router. But the output of Name and Value is cryptic. What's going wrong? The structure of the binary file is very simple: struct nvram_tuple { char *name; char *value; ... (5 Replies)
Discussion started by: digidax
5 Replies

9. Shell Programming and Scripting

Expect script brokes when Ping file save

Hi, For some reason I was needed to ping some URL and save the output to a file through Expect script, following is a very basic of that script, but it fails everytime. When I just copied the same 'ping' line to normal Terminal and run, it runs fine. Please, help. #!/bin/sh spawn ping -c 3... (1 Reply)
Discussion started by: santanu4ver
1 Replies

10. Programming

Expect script returning string following a found expect.

I'm fairly new to scripting so this might not be possible. I am using Expect with Cisco switches and need to capture the string after finding the expect request. For example, when I issue "show version" on a Nexus switch, I'm looking to capture the current firmware version: #show version ... (0 Replies)
Discussion started by: IBGaryA
0 Replies
CARP(4) 						   BSD Kernel Interfaces Manual 						   CARP(4)

NAME
carp -- Common Address Redundancy Protocol SYNOPSIS
pseudo-device carp [count] DESCRIPTION
The carp interface is a pseudo-device which implements and controls the CARP protocol. carp allows multiple hosts on the same local network to share a set of IP addresses. Its primary purpose is to ensure that these addresses are always available, but in some configurations carp can also provide load balancing functionality. A carp interface can be created at runtime using the ifconfig carpN create command. To use carp, the administrator needs to configure at minimum a common virtual host ID and virtual host IP address on each machine which is to take part in the virtual group. Additional parameters can also be set on a per-interface basis: advbase and advskew, which are used to con- trol how frequently the host sends advertisements when it is the master for a virtual host, and pass which is used to authenticate carp advertisements. Finally carpdev is used to specify which interface the carp device attaches to. If unspecified, the kernel attempts to set carpdev by looking for another interface with the same subnet. These configurations can be done using ifconfig(8), or through the SIOCSVH ioctl. Additionally, there are a number of global parameters which can be set using sysctl(8): net.inet.carp.allow Accept incoming carp packets. Enabled by default. net.inet.carp.preempt Allow virtual hosts to preempt each other. It is also used to failover carp interfaces as a group. When the option is enabled and one of the carp enabled physical interfaces goes down, advskew is changed to 240 on all carp interfaces. See also the first example. Disabled by default. net.inet.carp.log Log bad carp packets. Disabled by default. net.inet.carp.arpbalance Balance local traffic using ARP. Disabled by default. EXAMPLES
For firewalls and routers with multiple interfaces, it is desirable to failover all of the carp interfaces together, when one of the physical interfaces goes down. This is achieved by the preempt option. Enable it on both host A and B: # sysctl -w net.inet.carp.preempt=1 Assume that host A is the preferred master and 192.168.1.x/24 is configured on one physical interface and 192.168.2.y/24 on another. This is the setup for host A: # ifconfig carp0 create # ifconfig carp0 vhid 1 pass mekmitasdigoat 192.168.1.1 netmask 255.255.255.0 # ifconfig carp1 create # ifconfig carp1 vhid 2 pass mekmitasdigoat 192.168.2.1/24 netmask 255.255.255.0 The setup for host B is identical, but it has a higher advskew: # ifconfig carp0 create # ifconfig carp0 vhid 1 advskew 100 pass mekmitasdigoat 192.168.1.1 netmask 255.255.255.0 # ifconfig carp1 create # ifconfig carp1 vhid 2 advskew 100 pass mekmitasdigoat 192.168.2.1 netmask 255.255.255.0 Because of the preempt option, when one of the physical interfaces of host A fails, advskew is adjusted to 240 on all its carp interfaces. This will cause host B to preempt on both interfaces instead of just the failed one. In order to set up an ARP balanced virtual host, it is necessary to configure one virtual host for each physical host which would respond to ARP requests and thus handle the traffic. In the following example, two virtual hosts are configured on two hosts to provide balancing and failover for the IP address 192.168.1.10. First the carp interfaces on Host A are configured. The advskew of 100 on the second virtual host means that its advertisements will be sent out slightly less frequently. # ifconfig carp0 create # ifconfig carp0 vhid 1 pass mekmitasdigoat 192.168.1.10 netmask 255.255.255.0 # ifconfig carp1 create # ifconfig carp1 vhid 2 advskew 100 pass mekmitasdigoat 192.168.1.10 netmask 255.255.255.0 The configuration for host B is identical, except the skew is on virtual host 1 rather than virtual host 2. # ifconfig carp0 create # ifconfig carp0 vhid 1 advskew 100 pass mekmitasdigoat 192.168.1.10 netmask 255.255.255.0 # ifconfig carp1 create # ifconfig carp1 vhid 2 pass mekmitasdigoat 192.168.1.10 netmask 255.255.255.0 Finally, the ARP balancing feature must be enabled on both hosts: # sysctl -w net.inet.carp.arpbalance=1 When the hosts receive an ARP request for 192.168.1.10, the source IP address of the request is used to compute which virtual host should answer the request. The host which is master of the selected virtual host will reply to the request, the other(s) will ignore it. This way, locally connected systems will receive different ARP replies and subsequent IP traffic will be balanced among the hosts. If one of the hosts fails, the other will take over the virtual MAC address, and begin answering ARP requests on its behalf. Note: ARP balancing only works on the local network segment. It cannot balance traffic that crosses a router, because the router itself will always be balanced to the same virtual host. SEE ALSO
netstat(1), sysctl(3), arp(4), arp(8), ifconfig(8), sysctl(8) HISTORY
The carp device first appeared in OpenBSD 3.5. BSD
October 16, 2003 BSD
All times are GMT -4. The time now is 04:49 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy