Автоматизированный сценарий для архивирования журналов IIS?

Я решил проблему, удалив ссылки на googlemaps framework из моего проекта и добавив снова cocoapods , используя это руководство

15
задан Community 9 September 2008 в 23:13
поделиться

6 ответов

Вам будет нужен инструмент командной строки к на молнии файлы. Я рекомендую С 7 zip , который свободен и прост в использовании. Автономная версия командной строки (7za.exe) является самым портативным выбором.

Вот пакетный файл с двумя строками, который архивировал бы файлы журнала и удалил бы их впоследствии:

7za.exe a -tzip ex%1-logs.zip %2\ex%1*.log
del %2\ex%1*.log

первый параметр составляет 4 года-и-месяца цифры, и второй параметр является путем к каталогу, содержащему Ваши журналы. Например: ziplogs.bat 0808 c:\logs

возможно стать более тщательно продуманным (т.е. поиск имен файлов для определения который месяцы заархивировать). Вы могли бы хотеть проверить команду Windows FINDSTR для поиска входного текста с регулярными выражениями.

12
ответ дан 1 December 2019 в 03:15
поделиться

Вот мой сценарий, который в основном адаптирует David, и архивирует журналы прошлого месяца, перемещает их и удаляет исходные файлы журнала. это может быть адаптировано к журналам Apache также. Единственная проблема с этим - Вы, возможно, должен отредактировать команды замены, если Ваша выходная дата функции даты DOS недели. Необходимо будет также установить с 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
6
ответ дан 1 December 2019 в 03:15
поделиться

Мы используем сценарий как следующее. Gzip из cygwin проекта. Я уверен, что Вы могли изменить синтаксис для использования инструмента zip вместо этого. Аргументом "пропуска" является количество файлов для не архивации прочь - мы сохраняем 11 дней в 'текущем' каталоге.

@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
2
ответ дан 1 December 2019 в 03:15
поделиться

Regex добьется цели... создают perl/python/php сценарий, чтобы сделать задание для Вас..
я - вполне уверенный пакетный файл окон, не может сделать regex.

0
ответ дан 1 December 2019 в 03:15
поделиться

Можно захватить пакет утилит командной строки от DotNetZip, чтобы заставить инструменты создавать zip из сценариев. Существует миленький инструмент под названием 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()
1
ответ дан 1 December 2019 в 03:15
поделиться

Заимствованная функция 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)
}
1
ответ дан 1 December 2019 в 03:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: