Monday, February 13, 2012

ping -t pour sharepoint, version ferme

trivial... penser à déclarer un AAM avec le nom de la machine (ici par exemple sur le port 81) pour isoler un noeud, et mettre en tache planifiée tous les x minutes :

function Test-Site
{ param($URL)
try
{
$webclient = New-Object Net.WebClient
# Proxy avec le compte "windows"
$webclient.Credentials = [System.Net.CredentialCache]::DefaultCredentials
if($webclient.Proxy -ne $null) {
$webclient.Proxy.Credentials = `
[System.Net.CredentialCache]::DefaultNetworkCredentials
}
# test
$webclient.DownloadString($URL) | Out-Null
}

Catch
{
"FAIL: $($_.Exception.innerexception.message)"
Send-mailmessage -to "emmanuel.issaly@am.wtfbbq.com" -from "sharepoint.prod@wtfbbq.com" -subject "wtfbbqportal ne répond pas!" -body "FAIL: $($_.Exception.innerexception.message)" -smtpserver "SMTP.wtfbbq" -priority high
exit 1
}

}

Write-host N1 OK T=(Measure-Command {test-site "http://vpt-wtfbbq-01:81/"}).TotalSeconds
Write-host N2 OK T=(Measure-Command {test-site "http://vpt-wtfbbq-02:81/"}).TotalSeconds


PS : pour en faire un ping -t, encadrer les deux lignes de test par un while(1) par exemple...

1 comment:

Emmanuel ISSALY said...

on peut aussi jouer avec l'objet "request", qui est plus leger :

$req=[system.Net.HttpWebRequest]::Create($url);
$req.UseDefaultCredentials = $true
$req.Timeout = 7000
$d=(Measure-Command{$res = $req.getresponse()}).TotalSeconds
$stat = $res.statuscode;
$res.Close();