У меня есть несколько серверов IIS, на каждом из которых есть несколько сайтов, и я хочу регулярно архивировать все журналы IIS.
Я с помощью этого сайта и Google соединил следующий скрипт powershell:
$files = Get-ChildItem "D:\logfiles\IIS-Logs\*.log" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-7))}
foreach ($file in $files) {& 'C:\Program Files\WinRAR\winrar.exe' a -tl -df -m5 "$file.rar" $File}
Проблема с этим сценарием в том, что если есть ... скажем ... 2 000 всего журнала файлы, которые он пытался запустить 2000 одновременных копий Winrar и сервер взломает sh. Это было неожиданно. Я ожидал, что это заархивирует файлы по одному за раз. Последовательно.
У кого-нибудь есть идеи сделать эту работу, как я хочу?
Я бы очень хотел использовать Winrar против нативной опции Compress-Archive, потому что:
- Я хочу, чтобы даты файла отражали заархивированный файл, а не дату, когда он был заархивирован.
- Я хочу, чтобы утилита удаляла файлы после архивации, потому что утилита не удалит файл, если архивация не удалась.
Я не женат на Винраре, если смогу добиться этого другим способом.