Plink wait problem


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
# 1  
Power Plink wait problem

Hi,
I have run into a problem to which i can't seem to find any solution, posting here is my last resort.

Problem:
I am using plink to access my router and run a few configuration commands. When in enter configurations mode, instead of sending next command plink keeps on waiting for manual input. It only sends command while not in configuration mode. I need a way to make it send commands while router is in configuration mode.

Router is Cisco ASR 9001 (IOS XR)
using ssh to connect to router
command used to loging to router :
Code:
plink.exe username@routerip -C -pw mypassword -m G:\commands.txt"

Commands in commands.txt
Code:
show interface description | i Gi0/0/1   ( runs correctly)
configure terminal    (runs correctly)
interface Gi0/0/1     (command is not send to router instead it keeps on waiting on CLI. Command can be manually sent from keyboard, but that is useless as i want to automate it)


While waiting in configure mode, I can manually send the command by keyboard but then it kills the reason for using a batch file. However, if i manually exit from configuration mode, plink then resumes to send the next comamnds.


So I am stuck as how to make it send commands while in configuration mode.

Last edited by rbatte1; 08-02-2017 at 01:01 PM.. Reason: Added CODE tags
# 2  
Rather, I suspect it does not wait and sends the entire file in one giant block which gets 99% ignored.

For dealing with interactive situations like this, you'd usually use the expect language, which you can tell to wait for a matching response before sending more text. However, Windows does not have actual terminals for expect to use, so I'm unsure if this can be accomplished.
# 3  
I have tested it with several commands. Plink send them one by one and as i already mentioned that when i exit the configuration mode, it resumes normal operation. The problem only comes when router goes into configuration mode.
# 4  
Another crude way to deal with this would be slowing down the input. I don't think Windows has the very basic functionality needed to do this, but with busybox-w32 you can do:

Code:
busybox bash -c "while read -r LINE ; do echo $LINE ; sleep 1 ; done" < inputfile.txt | plink username@host -pw password

This will flatten any whitespace in your input file. I'm not sure how to avoid that without using an external script file. Does it matter for your input?

Quote:
Originally Posted by zaainabbas
I have tested it with several commands. Plink send them one by one and as i already mentioned that when i exit the configuration mode, it resumes normal operation. The problem only comes when router goes into configuration mode.
plink does not wait. It is a very primitive non-terminal with no such feature. It sends as fast as the socket will allow it.

The usual problem with scripting interactive interfaces is periods of time when anything you type will be ignored. This seldom matters to a human, but a program which will happily send the entire buffer while the router's occupied examining its own navel.

Last edited by Corona688; 08-02-2017 at 01:43 PM..
# 5  
Mate, input is being taken fine, rather plink itself goes into some kind of wait from router. what i think is that plink interprets it as router is busy while in configure mode. The second router goes to privilege mode, operation resumes as normal.
# 6  
If it really is waiting on keyboard, have you tried just
Code:
plink < textfile

? Windows isn't smart enough to tell the difference between textfile and terminal, so it might actually work as a "fake keyboard".
# 7  
CLI is open when plink is running and i can see everything on screen. When router goes into configruation mode, everything just stops. I can input commands from my keyboard. So i give "exit" command to quit configuration mode and then again operation resumes as normal, the commands again start coming from batch file.

If following commands are in batch file :
Code:
configure terminal
interface gi0/0/1
shutdown
commit

This is how it actually works:
Code:
ASR9001#
ASR9001#configure terminal
ASR9001(config)#    -> At this point, it just keeps on waiting until i manually input command from keyboard to exit configuration mode. I also tried running other commands while router is in config mode, and they run properly. Then when it exit configuration mode this is how it goes

ASR9001#interface gi0/0/1
                                  ^
% Invalid input detected at '^' marker.

ASR9001#shutdown
                                  ^
% Invalid input detected at '^' marker.
ASR9001#commit
                                  ^
% Invalid input detected at '^' marker.



Total combined output will be this :

ASR9001#
ASR9001#configure terminal
ASR9001(config)#exit         (Typed in manually)
ASR9001#interface gi0/0/1
                                  ^
% Invalid input detected at '^' marker.

ASR9001#shutdown
                                  ^
% Invalid input detected at '^' marker.
ASR9001#commit
                                  ^
% Invalid input detected at '^' marker.


Last edited by Scott; 08-02-2017 at 02:16 PM.. Reason: Use code tags, please
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #44
Difficulty: Easy
Data moves through the Internet in a data structure called a 'packet'.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Problem with output file plink GWAS

hi, Can anybody help me about the odd output file yielded by the following command: plink --noweb --allow-no-sex --bfile input_file --assoc --adjust --out output_file In fact, I'd like to perform a simple Bonferroni basic association test, and I obtains the following output file (extract... (1 Reply)
Discussion started by: boro82
1 Replies

2. Shell Programming and Scripting

[SOLVED] Problem in wait statement

Iam having a script which is used to load users and dumpfile in any given schema.Iam trying to autolog the script and have added two fucntion in it. function init_stdout_redirect { OUT_LOG=$1 OUT_PIPE=$(mktemp -u) # Create the output pipe mkfifo $OUT_PIPE # Save stdout and... (15 Replies)
Discussion started by: Vikram_Tanwar12
15 Replies

3. Shell Programming and Scripting

calling a shell script in background and wait using "wait" in while loop

Hi, I am facing a strange issue, when i call a script from my while loop in background it doesnt go in background, despite the wait i put below the whil loop it goes forward even before the process put in background is completed. cat abc.txt | while read -u4 line do #if line contains #... (2 Replies)
Discussion started by: mihirvora16
2 Replies

4. HP-UX

echo "selall;info;wait;infolog" | /usr/sbin/cstm problem

Hello, On a HP-UX 10.20 server I've executed something similar to this command: # echo 'selall;info;wait;infolog;view;done' | /usr/sbin/cstm But it returns sometype of "argument list too long" error. I suppose there is a way to fix it by using xargs but I can't figure it out. Any... (7 Replies)
Discussion started by: asanchez
7 Replies

5. Shell Programming and Scripting

plz, i wait your help, AWK problem

I have tracefile of three nodes (0 , 1 and 2 ) as follows: + 0.02 0 1 tcp 40 ------- 1 0.0 2.0 0 0 - 0.02 0 1 tcp 40 ------- 1 0.0 2.0 0 0 + 0.02 2 1 tcp 40 ------- 2 2.1 0.1 0 1 - 0.02 2 1 tcp 40 ------- 2 2.1 0.1 0 1 r 0.025032 0 1 tcp 40 ------- 1 0.0 2.0 0 0 + 0.025032 1 2 tcp 40 -------... (11 Replies)
Discussion started by: ASAADAOUI
11 Replies

6. Shell Programming and Scripting

wait problem

Hello, I have been trying to figure out why the wait isnt waiting for the sleep process to complete till now and have found out that since sleep runs as different process and not a child process the wait isnt waiting. script: cat test|while read i do echo $i sleep 30 & done wait ps... (4 Replies)
Discussion started by: wannalearn
4 Replies

7. Shell Programming and Scripting

wait command - cat it wait for not-chile process?

Did not use 'wait' yet. How I understand by now the wait works only for child processes, started background. Is there any other way to watch completion of any, not related process (at least, a process, owned by the same user?) I need to start a background process, witch will be waiting... (2 Replies)
Discussion started by: alex_5161
2 Replies

8. UNIX for Dummies Questions & Answers

Plink problem....only works if passwd is in the script

I have a one line bat script run off a XP machine that tar's and compresses some files from a Sol 8 box. It goes something like this (a bit simplified).... plink -pw <passwd> user@host "tar -cvf - -C / tmp/a_file | compress " > a_file.tar.Z So this works....and it's worked many times. But now... (3 Replies)
Discussion started by: Yinzer955i
3 Replies

9. Shell Programming and Scripting

Need to execute 2 scripts, wait, execute 2 more wait, till end of file

:cool: I need to execute a shell script to do the following: cat a file run two back ground processes using the first two values from the file wait till those background processes finish run two more background processes using the next two values from the file wait till those background... (1 Reply)
Discussion started by: halo98
1 Replies

10. UNIX for Dummies Questions & Answers

I/O wait Problem

When running top, I notice a bit more I/O wait time than usual. Is there a tool or piece of software out there that can me help evaluate the performance of these operations on my machine? Thanks! (5 Replies)
Discussion started by: unavb
5 Replies

Featured Tech Videos