We are using this script with jenkins to deploy “upload” a specific folder to a remote FTP. I used the winscp.exe synchronize command for it.

' script para envio de diretorio via FTP
' Felipe Ferreira Setembro 2014
' Para debugar, comente as linhas q apagam o ftp.txt e execute manualmente winscp /script=c:\scripts\ftp.txt
'
'MELHORIAS
' caso  o diretorio ja exista, apagar tudo e criar novo!
' ao reportar um error pegar detalhe do ftp_log.xml
'ACERTAR
' o script precisa pegar a variavel e criar um diretorio /mnt/multimidia/Extra/hotsie/
' e copiar image e info-variavel pra dentro dela
dim user,server,pass,dir,cmd
' @@@@@@@@@@@@ EDIT HERE @@@@@@@@@@@@@@@@@@@
user="USER"
pass="PASS"
server="SERVER"
root_dir="ROOT_DIR"
Set args = Wscript.Arguments
if WScript.Arguments.Count = 0 then
 wscript.echo "ERROR - favor passar um diretorio como parametro"
 wscript.quit 2
end if
dir=WScript.Arguments.Item(0)
' @@@@@@@@@ EDIT HERE @@@@@@@@@@ ( set a prefix directory name )
full_dir=root_dir & "workspace\info-" & dir
dir_content=full_dir & "info-" & dir
'dir_img=full_dir & "images"
'VERIFICA SE O DIRETORIO EXISTE
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FolderExists(full_dir)) Then
      wscript.echo "Enviando via FTP o diretorio " & full_dir & "ao " & dir
   Else
      wscript.echo "ERROR - diretorio "& full_dir & " nao foi encontrado!"
	  wscript.quit 2
end if
'PEGA ATUAL PATH
strScriptFile = WScript.ScriptFullname
strScriptPath = Left(strScriptFile, Len(strScriptFile) - Len(WScript.Scriptname))
dim logfile : logfile=strScriptPath & "ftp_log_upload.xml"
Set fso = CreateObject("Scripting.FileSystemObject")
filename = strScriptPath & "ftp_upload.txt"
set oFile= fso.CreateTextFile(filename)
' ESCREVE NO ARQUIVO OS COMANDOS DE FTP
oFile.Writeline "option batch continue"
oFile.Writeline "option confirm off"
oFile.Writeline "open ftp://"& user & ":" & pass & "@" & server
oFile.Writeline "synchronize remote -delete " & chr(34) & full_dir & chr(34) & " " & chr(34) & dir & chr(34)
'oFile.Writeline "synchronize remote -delete " & chr(34) & full_dir & chr(34) & " " & chr(34) & "/" & chr(34)
oFile.Writeline "bye"
oFile.Writeline "exit"
oFile.close
wscript.echo "Executando: synchronize remote -delete " & chr(34) & full_dir & chr(34) & " " & chr(34) & dir & chr(34)
Dim WshShell,strSCommandPre,strSCommand
Set WshShell = CreateObject("WScript.Shell")
Return = WshShell.Run("winscp.com /xmllog=" & logfile &  " /script=" & filename, 1, true)
if Return = 0 then
 wscript.echo "OK - FTP foi feito com sucesso "
 'fso.DeleteFile filename
 wscript.quit 0
else
 wscript.echo "CRITICAL - FTP falhou: ERROR " & Return & " verifique o servidor ftp: " & server & " e o diretorio: " & dir
 'fso.DeleteFile filename
 wscript.quit 1
end if
Tags: , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *