Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/10: Рейтинг темы: голосов - 10, средняя оценка - 4.60
avdross
1 / 1 / 1
Регистрация: 24.08.2015
Сообщений: 5
1

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

24.08.2015, 17:18. Просмотров 1917. Ответов 7
Метки нет (Все метки)

Помогите сделать bat для добавления в планировщик чтоб чистить логи. Задача:
в указанной директории на 15 серверах (hostname, hostname1, hostname2, hostname3)
Windows Batch file
1
2
3
4
set "in=\\hostname\c$\Program Files (x86)\Kaspersky Lab\Kaspersky Security 8.0 for Microsoft Exchange Servers\logs"
set "out=\\hostname\c$\Program Files (x86)\Kaspersky Lab\Kaspersky Security 8.0 for Microsoft Exchange Servers\logs\7zip_logs"
set "LogFile=%out%\7zip_logs.log"
set "arh=C:\Program Files (x86)\7-Zip\7z.exe"
1. Необходимо архивировать все файлы из %in%, изменение которых старше N дней и сохранять архив в %out% с записью в лог
архивировать командой - тут важны параметры архивации
Windows Batch file
1
"%arh%" a -ssw "%out%\%%~na.7z" -m0=LZMA2:d=96m:fb=128 -mx=9 -mmt=2 "?????имя файла???"
2. удалять заархивированные файлы (полагаю можно с применением параметра -sdel к 7zip) с записью в лог
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2015, 17:18
Ответы с готовыми решениями:

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

Очистка логов Windows
Можно ли очистить логи Windows через батник ?

Выполнение tracert и запись логов
Добрый день. Нужна помощь в написании bat файла. Что должно д.б.: 1....

Копирование логов из различных, по дате, папок
Добрый день! Столкнулись с задачей: Есть папки с логами, вида:...

Батник на удаление логов по заданным параметрам
Проблема заключается в том что не могу понять как сделать через утилиту...

7
alpap
1805 / 1327 / 429
Регистрация: 26.04.2015
Сообщений: 4,535
24.08.2015, 23:04 2
avdross, Слепой глухового да не услышит
Цитата Сообщение от avdross Посмотреть сообщение
чтоб чистить логи
?
Цитата Сообщение от avdross Посмотреть сообщение
изменение которых старше N дней
- изменение по...
Цитата Сообщение от avdross Посмотреть сообщение
удалять заархивированные файлы
- сколько, каких, откуда и за сколько дней или столетий?
0
avdross
1 / 1 / 1
Регистрация: 24.08.2015
Сообщений: 5
24.08.2015, 23:22  [ТС] 3
Уважаемые форумчане, поясняю, в папке с логами (каталог in) в случайном порядке накапливается неопределённое число файлов логов каспера , те файлы которые изменены более чем N дней тому назад (по дате) необходимо заархивировать с указанными выше параметрами архивации и сохранить в каталог out, а оригинальные файлы логов каспера, которые попали в заархивированный файл, необходимо удалить. Файлы заархивированных логов (сжатые логи каспера) необходимо сохранять, и желательно удалять если они старше 30 дней. Соответственно весь этот процесс надо логировать и сохранять в LogFile.
0
alpap
1805 / 1327 / 429
Регистрация: 26.04.2015
Сообщений: 4,535
27.08.2015, 09:45 4
avdross, Ну что-то похожее, только поменять 3 дня на 30 - разберетесь, надеюсь, и добавить удаление и вывод в лог (не проблема).
Windows Batch file
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
@echo off
setlocal enabledelayedexpansion
set "qw=%Userprofile%\Desktop\Test"
rem Для изменения у всех файлов даты "модификации" "обращения" [на текущую]
"nircmd" setfiletime "%qw%\*" "" now now
rem Убираем лидирующий "0" из даты, если есть
for /f "tokens=* delims=0" %%d in ("%date%") do (
 set onosdate=%%d
rem Модифицируем дату к виду: "текущая дата-3(дня)"
 for /f "tokens=1-3 delims=.: " %%a in ("!onosdate!") do (
rem У кого английская поменять на %%c%%b%%a
  set sdate=%%a%%b%%c
rem У кого английская %%c%%b
  set dnoa=%%b%%c
  set range=3
  set /a newa=%%a-!range!
rem У кого английская !dnoa!!newa!
  set newsdate=!newa!!dnoa!))
rem Выделяем "дату создания" "имя" и "расширение" файлов (очень важна сортировка по дате и времени, порядок не важен)
for /f "tokens=1-8 delims=.: " %%i in ('dir/a-d/o-d/tc "%qw%"^| findstr/rc:"^[^ ]"') do (
rem У кого английская %%k%%j%%i
 set mydate=%%i%%j%%k
rem Убираем лидирующий "0" из даты, если есть
 for /f "tokens=* delims=0" %%q in ("!mydate!") do (
   set onomydate=%%q
   set "namemydate=%%o.%%p%%q"
rem Сравниваем "имя" "расширение" "заданная дата" = "имя" "расширение" "дата создания" файла
   if "%%o.%%p%newsdate%"=="!namemydate!" (
rem Дальше вольны делать с файлами, что захотим, например:
    copy "%qw%\%%o.%%p" "%Userprofile%\Desktop\Folder\")))
exit
0
avdross
1 / 1 / 1
Регистрация: 24.08.2015
Сообщений: 5
27.08.2015, 11:41  [ТС] 5
alpap приветствую, видимо я ничего не понимаю. т.к. данный скрипт модернизировать под задачу не получается.. он просто не работает
0
alpap
1805 / 1327 / 429
Регистрация: 26.04.2015
Сообщений: 4,535
27.08.2015, 11:55 6
avdross, avdross, Тогда рассказываю. Первое - это надо скачать утилиту nircmd (есть здесь на форуме или в и-нете - кто ищет тот найдет) и кинуть в system32. Указать свои пути. В строке 15 поставить не 3 дня, а 30. Будут копироваться файлы из папки (которую укажете) в папку (которую укажете) с разницей в дате создания соответственно 30 дней, если у Вас не получается проверить это (файлы с месячной давновностью у Вас 100% есть) тогда и не беритесь за это дело, дальше не справитесь - ложку дал, кушайте сами.
0
avdross
1 / 1 / 1
Регистрация: 24.08.2015
Сообщений: 5
28.08.2015, 12:47  [ТС] 7
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Немного допилил, с использованием исключений.
Думаю некоторым это будет полезно, однако жаль что сообщество на форуме не проявило интереса к данной теме.
Windows Batch file
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
@echo off
SetLocal EnableDelayedExpansion
rem переключаемся на Windows - кодировку
chcp 1251 
 
rem исходная папка
set "in_folder=C:\temp\111"
rem обработка файлов логов у которых дата  последнего изменения меньше или равна текущей дате минус дней
set old_date=2
rem обработка файлов архивов логов у которых дата  последнего изменения меньше или равна текущей дате минус дней
set old_7zip=50
 
 
rem папка с архиватором 7-Zip\7z (добавляем путь в системные переменные)
SET PATH=C:\ArhLogKAV;%PATH%
rem файл исключений exclusions.txt
set exclusions=C:\ArhLogKAV\exclusions.txt
rem куда записывать результаты скрипта
set "out_folder=%in_folder%\7zip_logs"
rem куда записывать лог
set "LogFile=%out_folder%\7zip_logs.log"
 
 
if not exist "%out_folder%" md "%out_folder%"
ECHO. >> "%LogFile%"
ECHO ***** Начало %DATE% %TIME% ***** >> "%LogFile%"
ECHO %TIME% Добавляем в архив %DATE%.7z файлы дата изменения которых меньше %DATE% на %old_date% дня/дней >> "%LogFile%"
forfiles /P "%in_folder%" /D -%old_date% /C "cmd /c 7z a -m0=LZMA2:d=96m:fb=128 -mx=7 -mmt=2 -sdel  -r0 -x@"%exclusions%" "%out_folder%\%DATE%.7z" "@path" | findstr /P /I /B "Compressing" >> %LogFile%"
ECHO %TIME% Удаляем 7-Zip, старше %DATE% на %old_7zip% дня/дней  ***** >> "%LogFile%"
Forfiles -p "%out_folder%" /M *.* /D -%old_7zip% /C "cmd /c del /q @path >> %LogFile%"
ECHO *****%exclusions% Конец %DATE% %TIME%  ***** >> "%LogFile%"
exit /b
Из недостатков:
не пишет лог удаленных файлов
не пишет в лог результат сжатия файлов, только факт сжимания
если обрабатывать нечего в логе будет пусто, без записи "нет файлов для обработки" и т.п.
1
avdross
1 / 1 / 1
Регистрация: 24.08.2015
Сообщений: 5
28.08.2015, 12:51  [ТС] 8
Файл со скриптом во вложении
0
Вложения
Тип файла: zip ArhLogKAV.zip (969.3 Кб, 11 просмотров)
28.08.2015, 12:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.08.2015, 12:51

Архивация на лету
Возможно ли средствами windows (желательно CMD/BAT, но не обязательно)...

Архивация по 50 файлов
Есть одна папка в которой n картинок. Я вбрасываю в нее и жму name.bat...

Архивация папок
Прошу помощи в написании , казалось бы не сложного скриптика, но... Задача...


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

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

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