Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Архивация логов с датой по месяцам (7zip) (http://forum.oszone.net/showthread.php?t=240688)

ezmax 16-08-2012 10:00 1971107

Архивация логов с датой по месяцам (7zip)
 
Добрый день!
Требуется архивировать устаревшие логи в архив и архивы создавать помесячно. (Архиватор 7zip)
Логи хранятся в формате *YYMMDD.log и *YYMMDD.txt где * произвольный набор символов (длина чаще всего 2 шт и более)
архивы alogYYMM.7z
Желательно чтобы оставались логи за текущий месяц.
(замечу что логи текущей даты открыты для записи)


Первое что пришло в голову

Код:

hostname>>arclog.log
echo %Date%>>arclog.log
echo %time%>>arclog.log
FOR /L %%g IN (10,1,12) DO FOR  %%m IN (01,02,03,04,05,06,07,08,09,10,11,12) DO (
if exist *%%g%%m*.*  7z u -t7z .\arc\alog%%g%%m.7z *%%g%%m??.* -m0=PPMd -mx=9
del *%%g%%m??.* /Q
)

недостаток у этой реализации - удаляются логи за текущий месяц

немного модифицировал но что-то не работает как надо :(

Код:

set Dtmp=%Date%
set DD=%Dtmp:~0,2%
set DM=%Dtmp:~3,2%
set DY=%Dtmp:~8,2%
hostname>>arclog.log
echo %Date%>>arclog.log
echo %time%>>arclog.log
FOR /L %%g IN (10,1,12) DO FOR  %%m IN (01,02,03,04,05,06,07,08,09,10,11,12) DO (
if exist *%%g%%m*.*  7z u -t7z -sdel .\arc\alog%%g%%m.7z *%%g%%m??.* -m0=PPMd -mx=9
if %%g==%DY% (@if %%m==%DM% cls else del *%%g%%m??.* /Q) else del *%%g%%m??.* /Q
)

Подскажите что тут не так.
Может быть есть какой-то другой вариант обработки логов, например чтобы не перечислять весь список в цикле а как то понять какие логи есть и применить соответствующую команду архивации.

Еще один момент, 7zip (9.20) не умеет переносить (удалять после архивации) файлы в архив, появилась такая возможность в альфа версии 9.28 и то она не действует для команды (u) только для (а).
Применение альфа версии не желательно, да в данный момент на местах установлена 9.20


Время: 16:58.

Время: 16:58.
© OSzone.net 2001-