gpt4 book ai didi

azure - 如何清理azure web应用程序LogFiles目录?

转载 作者:行者123 更新时间:2023-12-04 17:44:22 25 4
gpt4 key购买 nike

我们的 Azure Web 应用服务遇到了很大的问题。突然间,我们开始出现“磁盘空间不足”错误。果然,LogFiles 目录很大。我们不确定如何清除该目录。一段时间后,由于没有找到任何推荐的方法,我们认为这只是日志文件,删除其中的一些文件可能是安全的。

通过 kudu powershell 控制台,我们删除了转储文件 LogFile/dumps,还通过 rm stdout_*.log 命令删除了一堆标准输出文件。令人震惊的是,这完全搞砸了我们的槽!我们尝试重新部署,但收到 HTTP 503 错误,并且我们没有明显的方法来解决此问题。

幸运的是,我们删除了暂存槽中的这些文件,而不是生产中的文件,因此没有停机。我们结束了旋转一个全新的插槽并在那里部署,然后删除了以前的插槽。

这肯定不是一次很棒的经历。谁能告诉我可能发生了什么?我们有一个非常简单的 asp.net core 2.1 应用程序。

删除日志文件真的会弄乱插槽吗???!

最佳答案

Can deleting log files really mess up a slot?

没有。您可能删除了一些配置文件,导致老虎机应用程序无法工作。

您可以使用以下代码删除Web应用程序日志文件。

$resourceGroupName="xxx"
$webAppName="xxxx"
$slotName="xxxxx"
function Get-AzureRmWebAppPublishingCredentials($resourceGroupName, $webAppName, $slotName = $null){
if ([string]::IsNullOrWhiteSpace($slotName)){
$resourceType = "Microsoft.Web/sites/config"
$resourceName = "$webAppName/publishingcredentials"
}
else{
$resourceType = "Microsoft.Web/sites/slots/config"
$resourceName = "$webAppName/$slotName/publishingcredentials"
}
$publishingCredentials = Invoke-AzureRmResourceAction -ResourceGroupName $resourceGroupName -ResourceType $resourceType -ResourceName $resourceName -Action list -ApiVersion 2015-08-01 -Force
Write-Host $publishingCredentials
return $publishingCredentials
}

function Get-KuduApiAuthorizationHeaderValue($resourceGroupName, $webAppName, $slotName = $null){
$publishingCredentials = Get-AzureRmWebAppPublishingCredentials $resourceGroupName $webAppName $slotName
Write-Host $publishingCredentials.Properties.PublishingUserName
Write-Host $publishingCredentials.Properties.PublishingPassword
return ("Basic {0}" -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $publishingCredentials.Properties.PublishingUserName, $publishingCredentials.Properties.PublishingPassword))))
}

function Delete-WebAppLogFiles($resourceGroupName, $webAppName, $slotName = ""){

$apiAuthorizationToken = Get-KuduApiAuthorizationHeaderValue $resourceGroupName $webAppName $slotName
if ($slotName -eq ""){
$apiUrl = "https://$webAppName.scm.azurewebsites.net/api/command"
}
else{
$apiUrl = "https://$webAppName`-$slotName.scm.azurewebsites.net/api/command"
}

$apiCommand = @{
#command='del *.* /S /Q /F'
command = 'powershell.exe -command "Remove-Item -path d:\\home\\LogFiles\\* -recurse"'
dir='d:\\home\\LogFiles'
}

Write-Output $apiUrl
Write-Output $apiAuthorizationToken
Write-Output $apiCommand
Invoke-RestMethod -Uri $apiUrl -Headers @{"Authorization"=$apiAuthorizationToken;"If-Match"="*"} -Method POST -ContentType "application/json" -Body (ConvertTo-Json $apiCommand)

}

Delete-WebAppLogFiles $resourceGroupName $webAppName $slotName

输出: enter image description here

关于azure - 如何清理azure web应用程序LogFiles目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52800853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com