You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Windows系统SQL Server查询Linux服务器的服务运行状态

通过Windows SQL作业查询Linux服务器服务状态

核心思路

要在Windows上的SQL Server作业中查询Linux服务状态,本质是让SQL作业远程执行Linux的服务查询命令,常用方式是通过SSH远程连接执行命令,以下是两种可行方案:


方案1:SQL作业添加PowerShell步骤

适用于Windows Server 2019/Windows 10及以上(默认预装OpenSSH客户端,旧版本需手动安装OpenSSH)

  1. 配置SSH免密登录
    在Windows服务器生成SSH密钥对,将公钥上传至Linux服务器的~/.ssh/authorized_keys文件,确保SQL Server代理账户能无密码登录Linux。

  2. 编写PowerShell脚本
    在SQL作业中新建「PowerShell」类型步骤,脚本示例:

# 替换为实际参数
$linuxServer = "192.168.1.100"
$linuxUser = "admin"
$serviceName = "nginx"

# 远程执行服务状态查询命令
$serviceStatus = ssh "$linuxUser@$linuxServer" "systemctl is-active $serviceName"

# 输出结果到作业日志,也可写入SQL表
Write-Output "目标服务 [$serviceName] 状态:$serviceStatus"
# 若要写入SQL表,可添加如下代码(需配置SQL权限)
# Invoke-SqlCmd -ServerInstance "本地SQL实例" -Database "监控库" -Query "INSERT INTO ServiceStatus (ServerName, ServiceName, Status, CheckTime) VALUES ('$linuxServer', '$serviceName', '$serviceStatus', GETDATE())"
  • 若Linux使用sysvinit而非systemd,将查询命令替换为:service $serviceName status | grep "running",再解析输出结果。

方案2:启用xp_cmdshell执行SSH命令

适合习惯用T-SQL编写作业的场景,需先启用xp_cmdshell组件:

  1. 启用xp_cmdshell
    执行以下T-SQL开启组件(需sysadmin权限):
sp_configure 'show advanced options', 1;
RECONFIGURE;
sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
  1. 编写T-SQL作业步骤
    在SQL作业中新建「Transact-SQL脚本」步骤,代码示例:
DECLARE @linuxServer NVARCHAR(100) = '192.168.1.100';
DECLARE @linuxUser NVARCHAR(50) = 'admin';
DECLARE @serviceName NVARCHAR(100) = 'nginx';
DECLARE @cmd NVARCHAR(300);

-- 拼接SSH远程命令
SET @cmd = 'ssh ' + @linuxUser + '@' + @linuxServer + ' "systemctl is-active ' + @serviceName + '"';

-- 执行命令并返回结果
EXEC xp_cmdshell @cmd;
  • 同样需配置SSH免密登录,避免作业因等待密码输入失败。
  • 可将xp_cmdshell的输出捕获后插入监控表,方便后续统计。

注意事项

  • SQL Server代理账户需具备执行SSH命令的权限,以及访问Linux服务器的SSH权限。
  • 优先使用systemctl is-active命令,返回active代表服务运行,inactive代表停止,结果更易判断。

内容的提问来源于stack exchange,提问作者Dan Goodwin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 10:13:30