AutoIt
AutoIt
SCP Sync Tree Upload
See more SCP Examples
Synchronize local and remote directory trees by uploading newer or missing files to the remote server.Chilkat AutoIt Downloads
Local $bSuccess = False
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
$oSsh = ObjCreate("Chilkat.Ssh")
; Hostname may be an IP address or hostname:
Local $sHostname = "www.some-ssh-server.com"
Local $iPort = 22
; Connect to an SSH server:
$bSuccess = $oSsh.Connect($sHostname,$iPort)
If ($bSuccess <> True) Then
ConsoleWrite($oSsh.LastErrorText & @CRLF)
Exit
EndIf
; Wait a max of 5 seconds when reading responses..
$oSsh.IdleTimeoutMs = 5000
; Authenticate using login/password:
$bSuccess = $oSsh.AuthenticatePw("myLogin","myPassword")
If ($bSuccess <> True) Then
ConsoleWrite($oSsh.LastErrorText & @CRLF)
Exit
EndIf
; Once the SSH object is connected and authenticated, we use it
; in our SCP object.
$oScp = ObjCreate("Chilkat.Scp")
$bSuccess = $oScp.UseSsh($oSsh)
If ($bSuccess <> True) Then
ConsoleWrite($oScp.LastErrorText & @CRLF)
Exit
EndIf
; The remoteRoot is relative to the HOME directory of the SSH user account.
Local $sRemoteRoot = "workspace/projectB"
Local $sLocalRoot = "c:/aaworkarea/scp/workspace/projectB"
; Upload synchronization modes:
; mode=0: Upload all files
; mode=1: Upload all files that do not exist on the FTP server.
; mode=2: Upload newer or non-existant files.
; mode=3: Upload only newer files. If a file does not already exist on the FTP server, it is not uploaded.
; mode=4: transfer missing files or files with size differences.
; mode=5: same as mode 4, but also newer files.
; Additional files and directores can be excluded by setting the SyncMustNotMatch property.
; The SyncMustNotMatch patterns apply only to the final filename or directory part of a path.
; If a directory matches, then it will not be traversed in a recursive traversal.
;
$oScp.SyncMustNotMatch = "*.o;*.obj;*.log; temp"
; The SyncMustMatch property can be set to restrict the files uploaded to only those
; matching at least one pattern in a set.
$oScp.SyncMustMatch = "*.cpp; *.h"
; Do the recursive sync to upload newer or non-existant files:
Local $bRecurse = True
Local $iMode = 2
$bSuccess = $oScp.SyncTreeUpload($sLocalRoot,$sRemoteRoot,$iMode,$bRecurse)
If ($bSuccess <> True) Then
ConsoleWrite($oScp.LastErrorText & @CRLF)
Exit
EndIf
; The files actually uploaded can be examined in the SyncedFiles property.
; It is a string property that contains the relative path, one per line, of each
; file uploaded.
ConsoleWrite("Files uploaded: " & @CRLF)
ConsoleWrite($oScp.SyncedFiles & @CRLF)
ConsoleWrite("----" & @CRLF)
ConsoleWrite("SCP sync upload success." & @CRLF)
; Disconnect
$oSsh.Disconnect