Home > VbScripts > vbs ftp sync script

vbs ftp sync script

September 11th, 2014 Leave a comment Go to comments

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

Categories: VbScripts Tags: , , ,
  1. No comments yet.
  1. No trackbacks yet.

VAMOVE *

*