Beefy Boxes and Bandwidth Generously Provided by pair Networks Frank
"be consistent"
 
PerlMonks  

Re: which version Net::SSh::Perl support multiplecmd calls

by idsfa (Vicar)
on Jul 18, 2006 at 17:17 UTC ( #562070=note: print w/ replies, xml ) Need Help??


in reply to which version Net::SSh::Perl support multiplecmd calls

I think you are confusing the concepts of "sessions" and "channels". In SSH2, multiple communication paths (channels) can be multiplexed through a single connection (session). The session is established by the new call, which establishes a TCP connection and performs the server identification key exchange. Once this is complete, additional channels can be established to perform tasks like port forwarding, transferring data or running an interactive shell.

The cmd method in this module creates a new channel each time it is invoked. This means that a new login shell is created, the user is authenticated, the command is run and the channel closed each time. The network connection remains for more channels. This looks like multiple connections.

If you want to run multiple commands within the same instance of a login shell, you need to use the shell method of the module, which "opens up an interactive shell on the remote machine and connects it to your STDIN." You will probably want to muck about with your file descriptors so that you can control what gets sent to STDIN programmatically (Expect, perhaps).


The intelligent reader will judge for himself. Without examining the facts fully and fairly, there is no way of knowing whether vox populi is really vox dei, or merely vox asinorum. — Cyrus H. Gordon


Comment on Re: which version Net::SSh::Perl support multiplecmd calls
Select or Download Code
Re^2: which version Net::SSh::Perl support multiplecmd calls
by veeruch (Sexton) on Jul 22, 2006 at 15:49 UTC
    exactly wht u told right,I have given code.
    ssh->cmd("cd /test"); ssh->cmd("ls -lrt");
    it not showing previous command test directory files it is showing my directory files.
    is it happend in all the versions of Net::SSH::Perl.in windows (activestate perl)
    i couldn't understand ,how to use shell method running in multiple cmds in one instance ..can u explain briefly
    i saw document in that they specied ...
    use Term::ReadKey; ReadMode('raw'); $ssh->shell; ReadMode('restore');
    i tryed like this it is opening shell but not doing any thing and more over out close this shell...

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://562070]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (7)
As of 2014-04-19 18:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (483 votes), past polls