Как зайти в Даркнет?!
25th January, 01:11
5
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
893
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Автоматический скрипт для zip IIS журналов?
Я хотел бы написать сценарий / пакет, который будет собирать мои ежедневные журналы IIS и zip по месяцам.
ex080801.log который находится в формате ex yymmdd .log
ex080801.log - ex080831.log получает молнии и файлы журнала удаляются.
Причина, по которой мы делаем это, заключается в том, что на тяжелом сайте файл журнала За один день может составлять от 500 МБ до 1 Гб, поэтому мы zip их сжимаем, который сжимает их на 98% и сбрасывает реальный файл журнала. Мы используем webtrend для анализа файлов журнала, и он способен считывать в файл zip.
Есть ли у кого-нибудь идеи о том, как это сделать, или вы хотели бы поделиться каким-то кодом?
Вам понадобится инструмент командной строки для zip up файлов. Я рекомендую 7-Zip , который является бесплатным и простым в использовании. Автономная версия командной строки (7za.exe) является наиболее переносимым выбором.
Вот двухстрочный пакетный файл, который будет zip файлы журнала и удалить их после этого:
7za.exe a -tzip ex%1-logs.zip %2\ex%1*.log
del %2\ex%1*.log
Первый параметр - это 4-значная цифра year-and-month, а второй параметр-путь к каталогу, содержащему ваши журналы. Например: ziplogs.bat 0808 c:\logs
Можно получить более сложные (т. е. поиск по именам файлов, чтобы определить, какие месяцы архивировать). Возможно, вы захотите проверить команду Windows FINDSTR для поиска входного текста с регулярными выражениями.
Вот мой сценарий, который в основном адаптируется к Дэвиду, и застегивает журналы прошлого месяца, перемещает их и удаляет исходные файлы журналов. это может быть адаптировано и для журналов Apache. Единственная проблема с этим заключается в том, что вам может потребоваться изменить команды замены, если ваша функция DOS date выводит дату недели. Вам также нужно будет установить 7-zip.
Вы также можете скачать IISlogslite, но он сжимает файл каждого дня в один файл zip, который я не нашел полезным. Существует vbscript плавающий по сети, который делает то же самое.
------------------------------------------------------------------------------------- @echo on :: Name - iislogzip.bat :: Description - Server Log File Manager :: :: History :: Date Authory Change :: 27-Aug-2008 David Crow Original (found on stack overflow) :: 15-Oct-2008 AIMackenzie Slimmed down commands :: ======================================================== :: setup variables and parameters :: ======================================================== :: generate date and time variables set month=%DATE:~3,2% set year=%DATE:~8,2% ::Get last month and check edge conditions set /a lastmonth=%month%-1 if %lastmonth% equ 0 set /a year=%year%-1 if %lastmonth% equ 0 set lastmonth=12 if %lastmonth% lss 10 set lastmonth=0%lastmonth% set yymm=%year%%lastmonth% set logpath="C:\WINDOWS\system32\LogFiles" set zippath="C:\Program Files\7-Zip\7z.exe" set arcpath="C:\WINDOWS\system32\LogFiles\WUDF" :: ======================================================== :: Change to log file path :: ======================================================== cd /D %logpath% :: ======================================================== :: zip last months IIS log files, move zipped file to archive :: then delete old logs :: ======================================================== %zippath% a -tzip ex%yymm%-logs.zip %logpath%\ex%yymm%*.log move "%logpath%\*.zip" "%arcpath%" del %logpath%\ex%yymm%*.log
Мы используем следующий сценарий. Gzip - это из проекта cygwin. Я уверен, что вы могли бы изменить синтаксис, чтобы использовать вместо этого инструмент zip. Аргумент "skip" - это количество файлов, которые не нужно архивировать - мы храним 11 дней в каталоге 'current'.
@echo off
setlocal
For /f "skip=11 delims=/" %%a in ('Dir D:\logs\W3SVC1\*.log /B /O:-N /T:C')do move "D:\logs\W3SVC1\%%a" "D:\logs\W3SVC1\old\%%a"
d:
cd "\logs\W3SVC1\old"
gzip -n *.log
Endlocal
exit
Заимствованная функция zip из http://blogs.msdn.com/daiken/archive/2007/02/12/compress-files-with-windows-powershell-then-package-a-windows-vista-sidebar-gadget.aspx
Вот powershell ответ, который творит чудеса:
param([string]$Path = $(read-host "Enter the path"))
function New-Zip
{
param([string]$zipfilename)
set-content $zipfilename ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
(dir $zipfilename).IsReadOnly = $false
}
function Add-Zip
{
param([string]$zipfilename)
if(-not (test-path($zipfilename)))
{
set-content $zipfilename ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
(dir $zipfilename).IsReadOnly = $false
}
$shellApplication = new-object -com shell.application
$zipPackage = $shellApplication.NameSpace($zipfilename)
foreach($file in $input)
{
$zipPackage.CopyHere($file.FullName)
Start-sleep -milliseconds 500
}
}
$FilesToZip = dir $Path -recurse -include *.log
foreach ($file in $FilesToZip) {
New-Zip $file.BaseName
dir $($file.directoryname+"\"+$file.name) | Add-zip $($file.directoryname+"\$($file.basename).zip")
del $($file.directoryname+"\"+$file.name)
}
Вы можете взять пакет утилит командной строки из DotNetZip , чтобы получить инструменты для создания молний из сценариев. Есть симпатичный маленький инструмент под названием Zipit.exe, который работает в командной строке, добавляет файлы или каталоги к zip файлам. Это быстро, эффективно.
Лучшим вариантом может быть просто сделать молнию изнутри PowerShell.
function ZipUp-Files ( $directory )
{
$children = get-childitem -path $directory
foreach ($o in $children)
{
if ($o.Name -ne "TestResults" -and
$o.Name -ne "obj" -and
$o.Name -ne "bin" -and
$o.Name -ne "tfs" -and
$o.Name -ne "notused" -and
$o.Name -ne "Release")
{
if ($o.PSIsContainer)
{
ZipUp-Files ( $o.FullName )
}
else
{
if ($o.Name -ne ".tfs-ignore" -and
!$o.Name.EndsWith(".cache") -and
!$o.Name.EndsWith(".zip") )
{
Write-output $o.FullName
$e= $zipfile.AddFile($o.FullName)
}
}
}
}
}
[System.Reflection.Assembly]::LoadFrom("c:\\\bin\\Ionic.Zip.dll");
$zipfile = new-object Ionic.Zip.ZipFile("zipsrc.zip");
ZipUp-Files "DotNetZip"
$zipfile.Save()
Мы используем этот powershell скрипт: http://gallery.technet.microsoft.com/scriptcenter/31db73b4-746c-4d33-a0aa-7a79006317e6
Он использует 7-zip и проверяет файлы перед их удалением