Biztalk 健康检查(Health check)powershell脚本

<#
.SYNOPSIS
PowerShell script to perform a quick BizTalk Health Check
.DESCRIPTION
This script gathers and displays a lot of information about a BizTalk server. Sections include Windows, Computer, BizTalk artifacts, Event Logs and more.
IMPORTANT! The script will check the environment it‘s run from. This means if you run the script from a PROD server, it will connect to the PROD BizTalk database.
.EXAMPLE
./BizTalkHealthCheck.ps1
.NOTES
You need to be member of BizTalk Server Administrators group to run this script. No parameters.
#>
cls
$startTime = Get-Date
Write-Host "Collect Date/Time:" $startTime
Write-Host "Current User:" ([System.Security.Principal.WindowsIdentity]::GetCurrent().Name)

try { # Get BizTalk Information
$BizTalkGroup = Get-WmiObject MSBTS_GroupSetting -namespace root\MicrosoftBizTalkServer -ErrorAction Stop
$BizTalkMsgBoxDb = Get-WmiObject MSBTS_MsgBoxSetting -namespace root\MicrosoftBizTalkServer -ErrorAction Stop
$BizTalkServer = Get-WmiObject MSBTS_Server -namespace root\MicrosoftBizTalkServer -ErrorAction Stop
$BizTalkREG = Get-ItemProperty "hklm:\SOFTWARE\Microsoft\BizTalk Server\3.0" -ErrorAction Stop
$hostInstances = Get-WmiObject MSBTS_HostInstance -namespace root\MicrosoftBizTalkServer -ErrorAction Stop
$trackingHost = Get-WmiObject MSBTSHost -Namespace root\MicrosoftBizTalkServer -ErrorAction Stop | where {$.HostTracking -eq "true" }

$BizTalkDBInstance = $BizTalkGroup.MgmtDbServerName
$BizTalkDB = $BizTalkGroup.MgmtDbName
$BizTalkOM = New-Object Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer
$BizTalkOM.ConnectionString = "SERVER=$BizTalkDBInstance;DATABASE=$BizTalkDB;Integrated Security=SSPI"

}
catch {
Write-Host "BizTalk not detected on this machine, or user not member of BizTalk Administrators group" -fore Red
exit
}

Display BizTalk Information

Write-Host "`nBizTalk Information" -fore Green
Write-Host $BiztalkREG.ProductName "("$BiztalkREG.ProductEdition"Edition )"
Write-Host "Product Version:" $BiztalkREG.ProductVersion
Write-Host "Installation Path:" $BiztalkREG.InstallPath
Write-Host "Installation Date:" $BiztalkREG.InstallDate
Write-Host "Server name:" $BiztalkServer.Name\
Write-Host "SSO Server:" $BizTalkGroup.SSOServerName
Write-Host "BizTalk Admin group:" $BizTalkGroup.BizTalkAdministratorGroup
Write-Host "BizTalk Operators group:" $BizTalkGroup.BizTalkOperatorGroup
Write-Host "BizTalk Group Name:" $BizTalkGroup.Name
Write-Host "Cache Refresh Interval:" $BizTalkGroup.ConfigurationCacheRefreshInterval

switch ($BizTalkGroup.GlobalTrackingOption) {
0 { Write-Host "Global Tracking: Off" }
1 { Write-Host "Global Tracking: On" }
}
Write-Host "`nInstalled BizTalk Software" -Fore DarkGray
Get-WmiObject win32product | where-object { $.Name -like "BizTalk" } | select-object Name -Unique | Sort-Object Name | select -expand Name

Display BizTalk Host Instance Information

Write-Host "`nHost Instance Information ("$hostInstances.Count")" -fore DarkGray

foreach ($hostInstance in $hostInstances) {
switch ($hostInstance.servicestate) {
1 { $hostInstanceState = "Stopped" }
2 { $hostInstanceState = "Start pending" }
3 { $hostInstanceState = "Stop pending" }
4 { $hostInstanceState = "Running" }
5 { $hostInstanceState = "Continue pending" }
6 { $hostInstanceState = "Pause pending" }
7 { $hostInstanceState = "Paused" }
8 { $hostInstanceState = "Unknown" }
}
switch ($hostInstance.HostType) {
1 { $hostInstanceType = "In-process" }
2 { $hostInstanceType = "Isolated" }
}
if ($hostInstanceState -eq "Running") {
Write-Host $hostInstance.hostname "($hostInstanceType)" "- " -NoNewline
Write-Host $hostInstanceState -fore green
}
elseif ($hostInstanceState -eq "Stopped") {
if ($hostInstance.IsDisabled -eq $true ) {
Write-Host $hostInstance.hostname "($hostInstanceType)" "- " -NoNewline
Write-Host $hostInstanceState "(Disabled)" -fore red
}
else {
Write-Host $hostInstance.hostname "($hostInstanceType)" "- " -NoNewline
Write-Host $hostInstanceState -fore Red
}
}
else {
if ($hostInstanceType -eq "In-process") {
Write-Host $hostInstance.hostname "($hostInstanceType)" "- " -NoNewline
Write-Host $hostInstanceState "(Disabled:$($hostInstance.IsDisabled))" -fore DarkYellow
}
else {
Write-Host $hostInstance.hostname "($hostInstanceType)"
}
}
}
Write-Host "`nTracking Host(s)" -Fore DarkGray
$trackingHost.Name

Get BizTalk Application Information

$applications = $BizTalkOM.Applications

Display BizTalk Application Information

Write-Host "`nBizTalk Applications ("$applications.Count")" -fore DarkGray

Foreach ($application in $applications) {
if ($application.Status -eq "Started") {
Write-Host $application.Name "- " -NoNewline
Write-Host $application.Status -fore Green
}
elseif ($application.Status -eq "Stopped") {
Write-Host $application.Name "- " -NoNewline
Write-Host $application.Status -fore Red
}
else {
Write-Host $application.Name "- " -NoNewline
Write-Host $application.Status -fore DarkYellow
}
}

Get BizTalk Service Instance Information

[ARRAY]$readyToRun = get-wmiobject MSBTS_ServiceInstance -namespace ‘root\MicrosoftBizTalkServer‘ -filter ‘(ServiceStatus = 1)‘ -ErrorAction SilentlyContinue
[ARRAY]$active = get-wmiobject MSBTS_ServiceInstance -namespace ‘root\MicrosoftBizTalkServer‘ -filter ‘(ServiceStatus = 2) and not(ServiceClass = 16)‘ -ErrorAction SilentlyContinue
[ARRAY]$dehydrated = get-wmiobject MSBTS_ServiceInstance -namespace ‘root\MicrosoftBizTalkServer‘ -filter ‘(ServiceStatus = 8)‘ -ErrorAction SilentlyContinue
[ARRAY]$breakpoint = get-wmiobject MSBTS_ServiceInstance -namespace ‘root\MicrosoftBizTalkServer‘ -filter ‘(ServiceStatus = 64)‘ -ErrorAction SilentlyContinue
[ARRAY]$suspendedOrchs = get-wmiobject MSBTS_ServiceInstance -namespace ‘root\MicrosoftBizTalkServer‘ -filter ‘(ServiceClass = 1) and (ServiceStatus = 4 or ServiceStatus = 32)‘ -ErrorAction SilentlyContinue
[ARRAY]$suspendedMessages = get-wmiobject MSBTS_ServiceInstance -namespace ‘root\MicrosoftBizTalkServer‘ -filter ‘(ServiceClass = 4) and (ServiceStatus = 4 or ServiceStatus = 32)‘ -ErrorAction SilentlyContinue
[ARRAY]$suspendedRouting = get-wmiobject MSBTS_ServiceInstance -namespace ‘root\MicrosoftBizTalkServer‘ -filter ‘(ServiceClass = 64)‘ -ErrorAction SilentlyContinue
[ARRAY]$suspendedIsolated = get-wmiobject MSBTS_ServiceInstance -namespace ‘root\MicrosoftBizTalkServer‘ -filter ‘(ServiceClass = 32) and (ServiceStatus = 4 or ServiceStatus = 32)‘ -ErrorAction SilentlyContinue

Display BizTalk Service Instance Information

Write-Host "`nService Instance Information" -fore DarkGray
Write-Host "Instances Ready to Run:" $readyToRun.Count
Write-Host "Active Instances:" $active.Count
Write-Host "Dehydrated Instances:" $dehydrated.Count
Write-Host "Instances in Breakpoint:" $breakpoint.Count
Write-Host "Suspended Orchestrations:" $suspendedOrchs.count
Write-Host "Suspended Messages:" $suspendedMessages.count
Write-Host "Routing Failures:" $suspendedRouting.count
Write-Host "Isolated Adapter Failures:" $suspendedIsolated.count

Get and Display BizTalk Receive Location Information

[ARRAY]$recLocs = get-wmiobject MSBTSReceiveLocation -namespace ‘root\MicrosoftBizTalkServer‘ | Where-Object {$.IsDisabled -eq "true" }
Write-Host "`nDisabled Receive Locations (" $recLocs.Count ")" -fore DarkGray

if ($recLocs.Count -gt 0) { $recLocs.Name }
else { Write-Host "None" }

Get and Display BizTalk Send Port Information

[ARRAY]$sendPorts = get-wmiobject MSBTSSendPort -namespace ‘root\MicrosoftBizTalkServer‘ | Where-Object {$.Status -eq 2 -or $_.Status -eq 1}
Write-Host "`nStopped and Unenlisted Send Ports (" $sendPorts.Count ")" -fore DarkGray

if ($sendPorts.Count -gt 0) { $sendPorts.Name }
else { Write-Host "None" }

Get and Display Orchstrations not started

[ARRAY]$orchs = Get-WmiObject MSBTSOrchestration -namespace ‘root\MicrosoftBizTalkServer‘ | Where-Object {$.OrchestrationStatus -ne 4 }
Write-Host "`nNot Started Orchestrations (" $orchs.Count ")" -fore DarkGray

if ($orchs.Count -gt 0) { $orchs.Name }
else { Write-Host "None" }

Tracking

Write-Host "`nTracking" -fore DarkGray
[ARRAY]$trackingSendPorts = get-wmiobject MSBTSSendPort -namespace ‘root\MicrosoftBizTalkServer‘ | Where-Object {$.Tracking -gt 0 }
[ARRAY]$trackingRecPorts = get-wmiobject MSBTSReceivePort -namespace ‘root\MicrosoftBizTalkServer‘ | Where-Object {$.Tracking -gt 0 }
Write-Host "Receive Ports with Tracking:" $trackingRecPorts.Count
Write-Host "Send Ports with Tracking:" $trackingSendPorts.Count

Get and Display Windows Information

Write-Host "`nWindows Information" -fore Green
$windowsDetails = Get-WmiObject -Class Win32_OperatingSystem
Write-Host $windowsDetails.Caption
Write-Host "Product Version:" $windowsDetails.Version
Write-Host "Service Pack Level:" $windowsDetails.CSDVersion
$UpdateSession = New-Object -Com Microsoft.Update.Session
$UpdateSearcher = $UpdateSession.CreateUpdateSearcher()
$SearchResult = $UpdateSearcher.Search("IsInstalled=0 and Type=‘Software‘")
Write-Host "Missing Windows Updates:" $SearchResult.Updates.Count
Write-Host "Architecture:" $windowsDetails.OSArchitecture
Write-Host "Installation Path:" $windowsDetails.WindowsDirectory
Write-Host "Page File:" (Get-WmiObject Win32_PageFileUsage).Name
Write-Host "TEMP Folder:" $env:TEMP "("(Get-ChildItem $env:TEMP -File -Recurse | Measure-Object).count" file(s) )"
Write-Host "TMP Folder:" $env:TMP "("(Get-ChildItem $env:TMP -File -Recurse | Measure-Object).count" file(s) )"
if (Test-Path C:\temp) {
Write-Host "C:\Temp:" (Get-ChildItem C:\temp -File -Recurse | Measure-Object).Count "file(s)"
}

Import-Module ServerManager
Get-WindowsFeature | Where-Object {$.Installed -eq $True} | Sort-Object DisplayName | ft @{Expression={$.DisplayName};Label="Installed Windows Roles and Features"}

Display IIS information

try {
Import-Module WebAdministration
Write-Host "IIS Version:" (get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp).setupstring
Write-Host "`nApplication Pools" -Fore DarkGray -NoNewLine
Get-ChildItem IIS:\apppools | ft -AutoSize
}
catch {
Write-Host "Unable to perform IIS checks" -fore Red
}

Check Windows Service state,

function FuncCheckService{
param($ServiceName)
$arrService = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
if ($arrService.Status -eq "Running"){
Write-Host $ServiceName "is running"
$script:unnecessaryServices++
}
}
Write-Host("Unnecessary Windows Services") -Fore DarkGray
[int]$script:unnecessaryServices = 0
FuncCheckService("Print Spooler")
FuncCheckService("Alerter")
FuncCheckService("ClipBook")
FuncCheckService("DHCP Server")
FuncCheckService("Fax Service")
FuncCheckService("File Replication")
FuncCheckService("Infrared Monitor")
FuncCheckService("Internet Connection Sharing")
FuncCheckService("Messenger")
FuncCheckService("NetMeeting Remote Desktop Sharing")
FuncCheckService("Network DDE")
FuncCheckService("Network DDE DSDM")
FuncCheckService("NWLink NetBIOS")
FuncCheckService("NWLink IPX/SP")
FuncCheckService("Telephony")
FuncCheckService("Telnet")
FuncCheckService("Uninterruptible Power Supply")
if ($unnecessaryServices -eq 0) { Write-Host "None" }

Display MSDTC Information

Write-Host "`nMSDTC Settings" -Fore DarkGray
Write-Host "RemoteClientAccessEnabled:" (Get-DtcNetworkSetting -DtcName Local).RemoteClientAccessEnabled
Write-Host "RemoteAdministrationAccessEnabled:" (Get-DtcNetworkSetting -DtcName Local).RemoteAdministrationAccessEnabled
Write-Host "InboundTransactionsEnabled:" (Get-DtcNetworkSetting -DtcName Local).InboundTransactionsEnabled
Write-Host "OutboundTransactionsEnabled:" (Get-DtcNetworkSetting -DtcName Local).OutboundTransactionsEnabled
Write-Host "Authentication:" (Get-DtcNetworkSetting -DtcName Local).AuthenticationLevel
Write-Host "XATransactionsEnabled:" (Get-DtcNetworkSetting -DtcName Local).XATransactionsEnabled
Write-Host "LUTransactionsEnabled:" (Get-DtcNetworkSetting -DtcName Local).LUTransactionsEnabled

Display Windows Firewall Information

Write-Host "`nWindows Firewall Status" -fore DarkGray -NoNewLine
Get-NetFirewallProfile | Select-Object Name,Enabled | ft -AutoSize

Get and Display Application Event Log Information

Write-Host "Most Common Application Event Log Errors" -Fore DarkGray -NoNewLine
$eventLog = Get-EventLog -Log Application -EntryType Error
$eventLog | Group-Object -Property Source -NoElement | Sort-Object -Property Count -Desc | ft -AutoSize

Write-Host "BizTalk Related Application Event Log Errors" -Fore DarkGray -NoNewLine
$BizTalkEventLog = Get-Eventlog -Log Application -EntryType Error | Where-Object {$.eventID -eq "5410" -or $.Source -like "BizTalk" -or $.Source -like "BAM" -or $.Source -like "DTC" -or $_.Source -like "RuleEngine"} | Select-Object Source,EventID,Message -Unique | Sort-Object Message | ft -AutoSize
$BizTalkEventLog

Get and Display Computer Information

Write-Host "Computer Information" -fore Green
$computerDetails = Get-WmiObject Win32_ComputerSystem
$drive = Get-WmiObject -Class Win32_Volume -Filter "DriveLetter = ‘C:‘"
$defragReport = $drive.DefragAnalysis()
Write-Host "File System (C:):" $drive.FileSystem
Write-Host "Capacity (C:):" ([Math]::Round(($drive.Capacity / 1024 / 1024 / 1024),0)) "GB"
Write-Host "Fragmentation (C:):" $defragReport.DefragAnalysis.FilePercentFragmentation"%"
Write-Host "Free Disk Space (C:):" $defragReport.DefragAnalysis.FreeSpacePercent"%"

Write-Host "System Type:" $computerDetails.SystemType
Write-Host "Physical RAM:" ([math]::round(($computerDetails.TotalPhysicalMemory/1GB),0))"GB"
Write-Host "Domain:" $computerDetails.Domain
Write-Host "Computer Model:" $computerDetails.model
Write-Host "Computer Manufacturer:" $computerDetails.manufacturer
Write-Host "BIOS Version:" (Get-WmiObject Win32_BIOS).BIOSVersion
Write-Host "BIOS Serial Number:" (Get-WmiObject Win32_BIOS).serialnumber

$processors = Get-WmiObject win32processor
if (@($processors)[0].NumberOfCores) { $cores = @($processors).count * @($processors)[0].NumberOfCores }
else { $cores = @($processors).count }
$sockets = @(@($processors) | % {$
.SocketDesignation} | select-object -unique).count;

Write-Host "`nProcessor(s) and Load Percentage" -Fore DarkGray
foreach ($processor in $processors ) { Write-Host $processor.Name "("$processor.LoadPercentage"% )" }
Write-Host "Cores: $cores, Sockets: $sockets"

Write-Host("`nAnti-virus and Security Software") -Fore DarkGray
$antiVirus = Get-WmiObject Win32_Product -Filter "name LIKE ‘%virus%‘ or name LIKE ‘%defend%‘ or name LIKE ‘%security%‘ or name LIKE ‘%protect%‘"
if ($antiVirus.Count -gt 0) { $antiVirus.Name }
else { Write-Host "None" }

Display Network Information

Write-Host "nNetwork Information" -fore Green<br/>Write-Host "TCP ports in use:" (netstat -ano -p tcp).Count<br/>Write-Host "nNetwork Connections" -fore DarkGray -NoNewLine
Get-NetAdapter | Select-Object Name,Status,LinkSpeed | ft -AutoSize

$nics = Get-WmiObject -computer localhost win32_networkadapterconfiguration -Filter "ipenabled=‘true‘"
Write-Host "IP Address(es):"
$nics.IPAddress

foreach ($nic in $nics ) {
Write-Host "Description:" $nic.Description
Write-Host "DHCP Server:" $nic.DHCPServer
Write-Host "Default Gateway:" $nic.DefaultIPGateway
Write-Host "MAC Address:" $nic.MACAddress
Write-Host "NetBIOS over TCP/IP: " -NoNewline
switch ($nic.TcpipNetbiosOptions) {
0 { Write-Host "Enabled via DHCP" }
1 { Write-Host "Enabled" }
2 { Write-Host "Disabled" }
}
}

Write-Host "`nInternet Download Test" -fore DarkGray
try {

Source download URL

$source = "http://speedtest.newark.linode.com/100MB-newark.bin"

# Destination download file
$destination = $env:USERPROFILE + "\Downloads\Download.txt"

# Download file
$startDownloadTime = Get-Date
Invoke-WebRequest $source -OutFile $destination -ErrorAction Stop
$endDownloadTime = Get-Date

$fileSize = ([Math]::Round(((Get-Item $destination).Length / 1024),0))
$totalTime = ([Math]::Round($(($endDownloadTime-$startDownloadTime).TotalSeconds), 2))
Write-Host "Download Time: $totalTime seconds"
Write-Host "File Size: $fileSize KB"
Write-Host "Download Speed:" ([Math]::Round(($fileSize / $totalTime), 2)) "KB/s"

# Delete downloaded file
Remove-Item $destination

}
catch {
Write-Host "Unable to perform Internet download speed test" -fore Red
}

Write-Host "`nDomain Controller Time Sync" -fore DarkGray
try {
Import-Module ActiveDirectory
$DC = Get-ADDomainController -Discover -ErrorAction Stop | select -Expand HostName
$TimeServer = w32tm /stripchart /computer:$DC /samples:5 /dataonly
$TimeServer
}
catch {
Write-Host "Unable to contact Domain Controller" -fore Red
}

$endTime = Get-Date
Write-Host "`nScript processing time:" ([Math]::Round($(($endTime-$startTime).TotalMinutes), 2)) "minutes"

原文地址:http://blog.51cto.com/6060579/2089857

时间: 2024-10-06 22:25:43

Biztalk 健康检查(Health check)powershell脚本的相关文章

k8s之健康检查(Health Check)

强大的自愈能力是 Kubernetes 这类容器编排引擎的一个重要特性.自愈的默认实现方式是自动重启发生故障的容器.除此之外,用户还可以利用 Liveness 和 Readiness 探测机制设置更精细的健康检查,进而实现如下需求: 零停机部署. 避免部署无效的镜像. 更加安全的滚动升级. 下面通过实践学习 Kubernetes 的 Health Check 功能. 默认的健康检查 首先学习 Kubernetes 默认的健康检查机制: 每个容器启动时都会执行一个进程,此进程由 Dockerfil

ASP.NET Core之跨平台的实时性能监控(2.健康检查)

前言 上篇我们讲了如何使用App Metrics 做一个简单的APM监控,最后提到过健康检查这个东西. 这篇主要就是讲解健康检查的内容. 没看过上篇的,请移步:ASP.NET Core之跨平台的实时性能监控 首先我们来了解一下什么是健康检查(health checks)? 1.什么是健康检查? 健康检查,其实这个名称已经很明确了,它是检查你的应用程序是否健康运行的一种方式.随着当前各类项目越来越多的应用程序正在转向微服务式架构,健康检查就变得尤为关键.虽然微服务体系结构具有许多好处,但其中一个缺

k8s的Health Check(健康检查)

强大的自愈能力是 Kubernetes 这类容器编排引擎的一个重要特性.自愈的默认实现方式是自动重启发生故障的容器.除此之外,用户还可以利用 Liveness 和 Readiness 探测机制设置更精细的健康检查,进而实现如下需求: 零停机部署. 避免部署无效的镜像. 更加安全的滚动升级. 下面通过实践学习 Kubernetes 的 Health Check 功能. 1.默认的健康检查 我们首先学习 Kubernetes 默认的健康检查机制: 每个容器启动时都会执行一个进程,此进程由 Docke

小麦苗健康检查脚本说明

小麦苗健康检查脚本说明 第一章 小麦苗健康检查脚本特点 小麦苗健康检查脚本有如下的特点: 1. 绿色版.免安装.纯SQL文本 2. 跨平台,只要有SQL*Plus环境即可运行 3. 兼容Oracle 10g.11g及12c版本 4. 一次购买,终身免费升级 5. 检查内容非常全面 6. 脚本可视化,可以看到脚本内容,因此可供学习使用 7. 只有1个SQL脚本,不存在嵌套调用等其它问题 8. 生成html文件的健康检查结果 9. 对结果进行过滤,列出了数据库有问题的内容   第二章 小麦苗健康检查

Oracle SQL 调优健康检查脚本

Oracle SQL 调优健康检查脚本 我们关注数据库系统的性能,进行数据库调优的主要工作就是进行SQL的优化.良好的数据架构设计.配合应用系统中间件和写一手漂亮的SQL,是未来系统上线后不出现致命性能问题的有力保证. 在CBO时代,一个SQL的执行计划是多样的.影响执行计划的因素也从过去RBO时代的SQL书写规则变为综合性因素.这为我们生成更加优秀执行计划提供了基础,同时也给我们进行调优带来的很多麻烦. 目前我们通常的做法,是通过AWR报告或者调试手段,发现某某SQL有问题,之后从Librar

LVS节点健康检查及管理脚本

在LVS负载均衡主节点上,模拟keepalived健康检查功能管理LVS节点,当节点挂掉从服务器池中剔除,好了再加到服务器池中来. 工具:yum install -y ipvsadm web03:10.0.0.17 web04:10.0.0.18 VIP:10.0.0.13 #!/bin/bash web3() { curl -I -m 10 -o /dev/null -s -w %{http_code}"\n" 10.0.0.17}web4() { curl -I -m 10 -o

powershell脚本自动检核DAG

经常检查DAG复制是Exchange邮箱管理员日常任务之一,以前每天上去看也挺烦的,尤其数据库比较多的情况下.下图就是"好心"的台北同事经常提醒我检查,我的天,这要是通过EMC看还不累死.还CC我领导,搞的人怪没面子的. 几条需要注意: 一.此脚本放在exchange任一台主机运行即可. 二.Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 添加Exchange管理模块 三.用Get-MailboxDatabase

健康监控器(Health Monitor)

健康监控器(Health Monitor)ORACLE 11G 中引入了免费的数据库健康监控器,通过DBMS_HM程序包来完成. 检查项目:1.DB结构完整性检查 2.数据块及完整性检查 3.中做日志完整性检查 4.Undo段完整性检查 5.事物完整性检查 6.数据字典完整性检查 SQL> select name,description from v$hm_check;NAME                           DESCRIPTION----------------------

分析shell实现nginx反向代理后端realserver健康检查

今天阅读老男孩教育博客http://oldboy.blog.51cto.com/ 中一篇关于shell实现nginx反向代理后端realserver健康检查的文章,根据其中一个学员朋友的思路自己写了一个脚本. 一.nginx.conf部分内容如下:     upstream rs_pools {     server 10.0.0.8:80 weight=5;     server 10.0.0.9:80 weight=5;     server 10.0.0.10:80 weight=5;