- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
'******************************************************************************'
'* Скрипт предназначен для отправки файлов-логов типа *.acc на FTP в архиве *'
'* *'
'* @param strPath - путь к папке, в которой находятся лог-файлы *'
'* @param strServerName - наименование или IP сервера FTP *'
'* @param strFtpFolder - папка на FTP-сервере *'
'* @param strZipExe - полный путь к файлу архиватору (необязательный) *'
'* @param strFtpsExe - полный путь к файлу архиватору (необязательный) *'
'* @param strTempFolder - Временная папка для файлов (необязательный) *'
'* *'
'* Параметры передаются в указанном порядке. *'
'* Пример. Записывает с одну строку: *'
'* cscript.exe me.vbs \\10.10.10.1\acssrv$\Log\ 10.10.10.2 *'
'* out/portovaya "C:\Program Files\7-Zip\7z.exe" "D:\Service\ftps.exe" *'
'* *'
'******************************************************************************'
Dim strPath
Dim strServerName
Dim strFtpFolder
Dim strZipExe
Dim strFtpsExe
Dim strTempFolder
Dim args
'On Error Resume Next
strZipExe = "C:\Program Files\7-Zip\7z.exe"
strFtpsExe = "D:\Service\ftps.exe"
strTempFolder = "D:\LogTemp"
Set args = WScript.Arguments
For i = 0 to args.Count - 1
Select Case i
Case 0: strPath = args(i)
Case 1: strServerName = args(i)
Case 2: strFtpFolder = args(i)
Case 3: strZipExe = args(i)
Case 4: strFtpsExe = args(i)
Case 5: strTempFolder = args(i)
End Select
Next
RunSend strPath, strServerName, strFtpFolder, strZipExe, strFtpsExe, strTempFolder
Sub RunSend(strPath, strServerName, strFtpFolder, strZipExe, strFtpsExe, strTempFolder)
Dim WshShell
Dim WshExec
Dim fso
Dim fsoTs
Set fso = CreateObject("Scripting.FileSystemObject")
strPath = fso.GetAbsolutePathName(strPath)
strTempFolder = fso.GetAbsolutePathName(strTempFolder)
If Not fso.FileExists(strZipExe) Then WScript.Echo "File " & strZipExe & " not exist": Exit Sub
If Not fso.FileExists(strFtpsExe) Then WScript.Echo "File " & strFtpsExe & " not exist": Exit Sub
If Not fso.FolderExists(strTempFolder) Then fso.CreateFolder strTempFolder
WScript.Echo "Copy files from " & strPath
fso.CopyFile fso.BuildPath(strPath, "*.acc"), strTempFolder
WScript.Echo "Create ftp parameters"
strFtps = fso.BuildPath(strTempFolder, "ftps.txt")
Set fsoTs = fso.OpenTextFile(strFtps, 2, True)
fsoTs.WriteLine "open " & strServerName & " 21"
fsoTs.WriteLine "anonymous"
fsoTs.WriteBlankLines 1
fsoTs.WriteLine "cd " & strFtpFolder
fsoTs.WriteLine "binary"
fsoTs.WriteLine "put " & fso.BuildPath(strTempFolder, "acclogs.zip")
fsoTs.WriteLine "quit"
fsoTs.Close
WScript.Echo "Create main bat-file"
strBat = fso.BuildPath(strTempFolder, "runzip.bat")
Set fsoTs = fso.OpenTextFile(strBat, 2, True)
fsoTs.WriteLine fso.GetDriveName(strTempFolder)
fsoTs.WriteLine "cd " & strTempFolder
fsoTs.WriteLine """" & strZipExe & """ a acclogs.zip *.acc"
fsoTs.WriteLine """" & strFtpsExe & """ -a -s:" & strFtps
fsoTs.Close
WScript.Echo "Executing"
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec(strBat)
result = WshExec.StdOut.ReadAll
WScript.Echo "Success"
fso.DeleteFile fso.BuildPath(strTempFolder, "*.*")
End Sub
Комментарии (0) RSS