' изменен 13.01.2011
' Орлов В.И. icq:5279603
On Error Resume Next
Dim dNow, FSO, str1, str2, str3, FileLog, i, intDays, strFldr, FldrBaza, PAthTo1C, cfg1c, PathToWinrar, User1c, Pass1c
Set WshShell = WScript.CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
dNow = now
' ================== SETUP BEGIN ===================================
'логфайл
FileLog = "\\ServerBD\d$\1c\BackUp.log"
'Папка где хранить архивы
strFldr = "\\ServerArch\d$\BackUp\1C"
'Сервер|папка, где храняться базы данных 1С (общее начало пути до баз)
FldrBaza = "\\server\bases"
'Путь где лежит ехе-шник 1С
PathTo1C = "\\ServerBD\c$\Program Files\1Cv77\BIN\1cv7s.exe"
'Путь к файлу конфига архивации 1С
cfg1c = "\\ServerBD\d$\1c\77.1c"
'Путь до программы WinRAR
PathToWinrar = "\\ServerBD\c$\Program Files\WinRAR\Winrar.exe"
'Временный файл архива (удаляется после каждого архивирования)
TempRarDir = "\\ServerBD\d$\Backup"
TempRarFil = "Arxiv.zip"
TempRar = TempRarDir & "\" & TempRarFil
'За какое количество дней хранить архивы
intDays = 10
'В каждой базе должен быть такой юзер
User1c = "1C" '1C
'У юзера 1С в каждой базе должен быть такой пароль
Pass1c = "gfhjkm" 'gfhjkm
' ================== SETUP END =====================================
Log("_________________ НАЧАЛО " & dNow)
dim test
test = " 1 - " & PathExist("",FileLog) & chr(9) & FileLog & chr(13) & chr(10)
test = test & " 2 - " & PathExist(strFldr,"") & chr(9) & strFldr & chr(13) & chr(10)
'test = test & " 3 - " & PathExist(FldrBaza,"") & chr(9) & FldrBaza & chr(13) & chr(10)
test = test & " 4 - " & PathExist("",PathTo1C) & chr(9) & PathTo1C & chr(13) & chr(10)
test = test & " 5 - " & PathExist("",cfg1c) & chr(9) & cfg1c & chr(13) & chr(10)
test = test & " 6 - " & PathExist("",PathToWinrar) & chr(9) & PathToWinrar & chr(13) & chr(10)
test = test & " 7 - " & PathExist(TempRarDir,"") & chr(9) & TempRarDir & chr(13) & chr(10)
if InStr(test,"Ложь") or InStr(test,"False") then
Log("!!! Работа скрипта """ & Wscript.ScriptFullName & """ прервана." & chr(13) & chr(10) & test)
TheEnd
end if
' arhci <<"папка базы\">>, <<"Название базы">>
archi "market\Савёловский\Савёловский\", "Савёловский"
archi "Buh_Meridian\", "Бухгалтерия_Меридиан"
archi "dbprbasic\Салют\", "ЗиК Салют"
DelOld strFldr, intDays
TheEnd 'КОНЕЦ
function archi(baza, baza2)
str1 = """" & PathTo1C & """ CONFIG /D""" & FldrBaza & "\" & baza & """ /N" & User1c & " /P" & Pass1c & " /@""" & cfg1c & """"
if PathExist(FldrBaza & "\" & baza,"") = False then
Log("!!! Архивация не завершена. Не айден путь:""" & FldrBaza & "\" & baza & """")
exit function
end if
str2 = """" & PathToWinrar & """ a -ag+YYYY-MM-DD """ & strFldr & "\" & baza2 & """ """ & TempRar & """"
if PathExist(strFldr, "") = False then
Log("!!! Архивация не завершена. Не айден путь:""" & strFldr & """")
exit function
end if
str3 = "cmd /C del """ & TempRar & """"
Log(" " & Now & " BEGIN " & strFldr & "\" & year(dNow) & "-" & right("0" & month(dNow),2) & "-" & right("0" & day(dNow),2) & baza2 & ".rar")
return = WshShell.Run(str1,0,True)
dNow = now
return = WshShell.Run(str2,0,True)
return = WshShell.Run(str3,0,True)
Set objFile = FSO.GetFile(strFldr & "\" & year(dNow) & "-" & right("0" & month(dNow),2) & "-" & right("0" & day(dNow),2) & baza2 & ".rar")
Log(" " & Now & " END Размер: " & round((objFile.Size/1024)/1024,2) & "Mb " & baza2)
' пауза
WScript.Sleep 5000 ' 1000 - 1 сек
End function
Sub log(sData)
Dim ts, ForAppending
ForAppending = 8
PathExist "", FileLog
Set ts = FSO.OpenTextFile(FileLog, ForAppending, True)
ts.Write sData & chr(13) & chr(10)
ts.Close
End Sub
Function DelOld(sFldr, iDays)
Dim cF, oI, files
files = ""
Set cF = FSO.GetFolder(sFldr).Files
For Each oI In cF
If DateDiff("d", oI.DateLastModified, dNow) > iDays Then
files = files & " " & round((oI.size/1024)/1024,2) & "Mb" & string(9-len(round((oI.size/1024)/1024,2) & "Mb")," ") & oI.Name & chr(13) & chr(10)
oI.Delete
End if
Next
if trim(files) <> "" then
Log("!!! " & "Удалены файлы из папки " & sFldr & " до " & date - iDays & ":" & chr(13) & chr(10) & files)
end if
End Function
Function PathExist(Dpath, Fpath)
PathExist = False
if Dpath <> "" then
if FSO.FolderExists(Dpath) = False then
Log("!!! Папка НЕнайдена:""" & Dpath & """")
PathExist = False
else
PathExist = True
end if
end if
if Fpath <> "" then
if FSO.FileExists(Fpath) = False then
Log("!!! Файл НЕнайден:""" & Fpath & """")
PathExist = False
else
PathExist = True
end if
end if
End function
Sub TheEnd()
Log("_________________ КОНЕЦ " & Now)
Set WshShell = Nothing
Set FSO = Nothing
Set ts = Nothing
Set cF = Nothing
WScript.Quit
End Sub
Оставить запись с благодарностью..
В начало.