Требуется загрузить журналы IIS на 7 дней старше в AWS S3 Bukcet.Используя приведенный ниже код, я могу получить доступ к папкам AWS в сегменте
Import-Module "C:\Program Files (x86)\AWS Tools\PowerShell\AWSPowerShell\AWSPowerShell.psd1"
$AKey = ""
$SKey = ""
$source = "C:\inetpub\logs\LogFiles\*"
$outputpath = "C:\scripts\Logs\logs3.txt"
Set-AWSCredentials -AccessKey $AKey -SecretKey $SKey
function Get-Subdirectories {
param (
[string] $BucketName,
[string] $KeyPrefix,
[bool] $Recurse
)
@(Get-S3Object -BucketName $BucketName -KeyPrefix $KeyPrefix -Delimiter '/') | Out-Null
if ($AWSHistory.LastCommand.Responses.Last.CommonPrefixes.Count -eq 0) {
return
}
$AWSHistory.LastCommand.Responses.Last.CommonPrefixes
if ($Recurse) {
$AWSHistory.LastCommand.Responses.Last.CommonPrefixes | ForEach-Object { Get-Subdirectories -BucketName $BucketName -KeyPrefix $_ -Recurse $Recurse }
}
}
function Get-S3Directories {
param (
[string] $BucketName,
[bool] $Recurse = $false
)
Get-Subdirectories -BucketName $BucketName -KeyPrefix '/' -Recurse $Recurse
}
Теперь, если я наберу Get-S3Directories -BucketName backups
, я получу следующий вывод:
SERVER-xxx-OLogs/
SERVER-xxx-untime-logs /
SERVER-xxx-FRLogs/
SERVER-oooooRLogs/
SERVER-IISLogFiles/
Теперь проблема в том, что у меня естьпереместить IIS старше 7 дней в SERVER-IISLogFiles/
Каталог
Итак, я создал этот
$sfolder = Get-S3Directories -BucketName Backups
Foreach ($folder in $sfolder) {
$wc = New-Object System.Net.WebClient
Set-AWSCredentials -AccessKey $AKey -SecretKey $SKey -StoreAs For_Move
Initialize-AWSDefaults -ProfileName For_Move -Region US-east-1
Start-Transcript -path $outputpath -Force
foreach ($i in Get-ChildItem $source -include *.log -recurse) {
if ($i.CreationTime -lt ($(Get-Date).AddDays(-7))) {
$fileName = (Get-ChildItem $i).Name
$parentFolderName = Split-Path (Split-Path $i -Parent) -Leaf
Write-S3Object -BucketName $folder -File $i
}
}
}
Stop-Transcript
Я не совсем уверен, будет ли он перемещен в каталог SERVER-IISLogFiles/
, не уверенесли я что-то здесь упускаю, кроме этого, я сомневаюсь, что он сохранит структуру папок локальной папки IIS на IIS