Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Visual FoxPro) SSH Parallel Remote Commands on Single ServerSee more SSH ExamplesShows how to execute multiple commands in parallel on a single SSH server and retrieve the command output for each.
LOCAL loSsh LOCAL lnPort LOCAL lnSuccess LOCAL lnChannel1 LOCAL lnChannel2 LOCAL lnChannel3 LOCAL lnPollTimeoutMs LOCAL lnNumFinished LOCAL lnChannel * This example requires the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Ssh') loSsh = CreateObject('Chilkat.Ssh') lnPort = 22 lnSuccess = loSsh.Connect("the-ssh-server.com",lnPort) IF (lnSuccess <> 1) THEN ? loSsh.LastErrorText RELEASE loSsh CANCEL ENDIF * Authenticate using login/password: lnSuccess = loSsh.AuthenticatePw("theSshLogin","theSshPassword") IF (lnSuccess <> 1) THEN ? loSsh.LastErrorText RELEASE loSsh CANCEL ENDIF * Start several commands on the server. lnChannel1 = loSsh.QuickCmdSend("df") IF (lnChannel1 < 0) THEN ? loSsh.LastErrorText RELEASE loSsh CANCEL ENDIF lnChannel2 = loSsh.QuickCmdSend("date") IF (lnChannel2 < 0) THEN ? loSsh.LastErrorText RELEASE loSsh CANCEL ENDIF lnChannel3 = loSsh.QuickCmdSend("echo hello world") IF (lnChannel3 < 0) THEN ? loSsh.LastErrorText RELEASE loSsh CANCEL ENDIF * Now collect the results of each command. lnPollTimeoutMs = 50 lnNumFinished = 0 DO WHILE lnNumFinished < 3 * Check to see if anything has finished. * QuickCmdCheck returns -1 if there are no errors and nothing else finished * QuickCmdCheck returns -2 if there was an error (such as a lost connection) * QuickCmdCheck returns a channel number if a channel finished. lnChannel = loSsh.QuickCmdCheck(lnPollTimeoutMs) IF (lnChannel = -2) THEN ? loSsh.LastErrorText RELEASE loSsh CANCEL ENDIF IF (lnChannel >= 0) THEN ? "---- channel " + STR(lnChannel) + " finished ----" ? loSsh.GetReceivedText(lnChannel,"ansi") lnNumFinished = lnNumFinished + 1 ENDIF ENDDO * -------------- * Sample output: * ---- channel 105 finished ---- * hello world * * ---- channel 104 finished ---- * Thu Dec 22 17:43:58 CST 2016 * * ---- channel 103 finished ---- * Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on * /dev/disk2 2176716032 265739728 1910464304 13% 33281464 238808038 12% / * devfs 382 382 0 100% 662 0 100% /dev * map -hosts 0 0 0 100% 0 0 100% /net * map auto_home 0 0 0 100% 0 0 100% /home * /dev/disk3s2 374668 374668 0 100% 93665 0 100% /Volumes/Google Chrome RELEASE loSsh |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.