首页 > 解决方案 > 多个站点的Powershell预热脚本?

问题描述

我是 powershell 新手,并尝试配置以下预热脚本以针对多个域运行:

$Site = "http://172.28.36.202:1156/"
$minTime = 250

@($Site) | % {
    Write-Host "Warming up $($_)"
    Do {
        $time = Measure-Command {
            $res = Invoke-WebRequest $_ -Headers @{host="mydomain.com"}
        }
        $ms = $time.TotalMilliSeconds
        If ($ms -ge $minTime) {
            Write-Host "$($res.StatusCode) from $($_) in $($ms)ms" -foreground "yellow"
        }
    } While ($ms -ge $minTime)
    Write-Host "$($res.StatusCode) from $($_) in $($ms)ms" -foreground "cyan"
}

让它按预期工作,但需要能够在多个 url 处触发代码块。我有大约 25 台服务器需要预热。

关于最佳方法的任何提示?谢谢

标签: powershell

解决方案


创建一个包含您需要的所有项目的文本文件,并根据需要将其读入以进行处理。

$Site = Import-Csv -Path PathToCsvFileWithYourList

这样你就可以让你的脚本保持原样,当你需要为更多或更少的服务器点执行此操作时,你只需更改此文件。


推荐阅读