Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
|
Make a Copy of a File on Remote SSH ServerDemonstrates how to make a copy of a file on a remote SSH server by running the "cp" command. This works if your server is Linux or Unix-based. For Windows-based servers, use the DOS "copy" command.
LOCAL loSsh LOCAL lnSuccess LOCAL lcHostname LOCAL lnPort LOCAL lnChannelNum LOCAL lcCmdOutput * Important: It is helpful to send the contents of the * ssh.LastErrorText property when requesting support. loSsh = CreateObject('Chilkat.Ssh') * Any string automatically begins a fully-functional 30-day trial. lnSuccess = loSsh.UnlockComponent("Anything for 30-day trial") IF (lnSuccess <> 1) THEN =MESSAGEBOX(loSsh.LastErrorText) QUIT ENDIF * Connect to an SSH server: * Hostname may be an IP address or hostname: lcHostname = "192.168.1.117" lnPort = 22 lnSuccess = loSsh.Connect(lcHostname,lnPort) IF (lnSuccess <> 1) THEN =MESSAGEBOX(loSsh.LastErrorText) QUIT ENDIF * Wait a max of 5 seconds when reading responses.. loSsh.IdleTimeoutMs = 5000 * Authenticate using login/password: lnSuccess = loSsh.AuthenticatePw("myLogin","myPassword") IF (lnSuccess <> 1) THEN =MESSAGEBOX(loSsh.LastErrorText) QUIT ENDIF * Open a session channel. (It is possible to have multiple * session channels open simultaneously.) lnChannelNum = loSsh.OpenSessionChannel() IF (lnChannelNum < 0) THEN =MESSAGEBOX(loSsh.LastErrorText) QUIT ENDIF * In this example, we'll copy wine.html to wine2.html * The "cp" command has no output (i.e. nothing is written to * the standard output) so we'll include an "echo FINISHED" * so we can programmatically retrieve the output and close * the channel. Closing the channel immediately after sending * the command is not good because w/ some SSH servers * it introduces a race condition where the command may not * be executed if the server thinks the client has disconnected. lnSuccess = loSsh.SendReqExec(lnChannelNum,"cp wine.html wine2.html && echo FINISHED") IF (lnSuccess <> 1) THEN =MESSAGEBOX(loSsh.LastErrorText) QUIT ENDIF * Read the channel until we receive the FINISHED string. lnSuccess = loSsh.ChannelReceiveUntilMatch(lnChannelNum,"FINISHED","ansi",1) IF (lnSuccess <> 1) THEN =MESSAGEBOX(loSsh.LastErrorText) QUIT ENDIF * Close the channel: lnSuccess = loSsh.ChannelSendClose(lnChannelNum) IF (lnSuccess <> 1) THEN =MESSAGEBOX(loSsh.LastErrorText) QUIT ENDIF * Let's pickup the accumulated output of the command: * (In this case, it will be the string "FINISHED") lcCmdOutput = loSsh.GetReceivedText(lnChannelNum,"ansi") IF (lcCmdOutput = NULL ) THEN =MESSAGEBOX(loSsh.LastErrorText) QUIT ENDIF * Display the remote shell's command output: ? lcCmdOutput * Disconnect loSsh.Disconnect() |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.
Mail Component · .NET Email Component · ASP Mail Component · XML Parser