Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBScript/JScript/WSH/WMI/HTA
Войти
Регистрация
Восстановить пароль
 
vadimkara
0 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 1
1

Автоархивация логов

21.02.2014, 14:00. Просмотров 308. Ответов 0
Метки нет (Все метки)

Скрипт архивирует логи по маске и времени создания, но почему то не хочет передавать архиватору файлы для архивации, где косяк?

Visual Basic
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
Option Explicit
 
Dim objFSO, objFolder, objFiles, objShell, rE, log
Dim file, fileDate, fileName, strCommand, strRun, strFile, strTmp, formatDate
Dim inDir, outTmp, outDir, logFile, extMask, daysOld
 
Const ForReading = 1, ForWriting = 2, ForAppending = 8
 
inDir = ""       ' Откуда перемещаем
outTmp = ""   ' Куда перемещаем (TMP)
outDir = ""      ' Куда архивируем
logFile = ""    ' Где лежать логи
daysOld = 0                          ' Файлы младше количества дней
extMask = "^.*\.csv$"              ' Маска файлов
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = wscript.createObject("Wscript.Shell")
Set objFolder = objFSO.GetFolder(inDir)
Set objFiles = objFolder.Files
Set log = objFSO.OpenTextFile(logFile, ForAppending)
Set rE = New RegExp
rE.Pattern = extMask
rE.IgnoreCase = True
 
objFSO.DeleteFile outTmp+"\*.*", True   'Очистка папки Тмп
 
'Отбор файлов по маске и дата и перемещение их в папку Тмп
For Each file In objFiles                 
    fileName=file.Name                       
    fileDate = file.DateLastModified
    If RE.Test(fileName) And DateDiff("d", fileDate, Date) >= daysOld Then
       file.Move outTmp+"\"
    End If
Next
 
'Форматирование имя архива и архивированию файлов с записью в лог
formatDate = CStr(Date) 
strFile = outDir+"\"+Mid(formatDate,1,2)+Mid(formatDate,4,2)+Mid(formatDate,7,4)+".7z"
strCommand = "7z -mx=7 -y a "+strFile+" "+strTmp +""
strTmp = outTmp++"\*"
strRun = objShell.Run(strCommand,0,False)
log.WriteLine strCommand
 
' Контрольная очистка папки Тмп
If objFSO.FileExists(strFile) Then 
     objFSO.DeleteFile OutTmp+"\*.*", True
End If
 
'Чистка переменных
Set objFSO = Nothing
Set objShell = Nothing
Set objFolder = Nothing
Set objFiles = Nothing
Set Log = Nothing
Set RE = Nothing
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2014, 14:00
Ответы с готовыми решениями:

Просмотр логов печати.
Здравствуйте, интересует такой вопрос, возможно ли где нибудь проглядеть файлы...

Запись логов подключения к сетям
Доброго времени суток, уважаемые. Недавно на нашем маленьком...

Автоархивация
Подскажите пожалуйста, какие возможны периоды автоархивации файла Excel и где...

Outlook 2013 и автоархивация
Есть около 100 машин. У всех установлен Microsoft office 2013 standart. Оутлук...

Запись логов
Привет. Есть скрипт: проверка наличия VPN каждые 5 мин. в случае отсутствия...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2014, 14:00

Архивация логов
Помогите сделать bat для добавления в планировщик чтоб чистить логи. Задача:...

Введение логов
Ребят, посоветуйте с чего начать. Хочу с помощью JS автоматизировать историю ...

Парсинг логов
Есть очень большие логи 2-3гб. Лежат на серверной машине, надо как-то иметь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru