`
ihuashao
  • 浏览: 4745677 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

如何确定服务器的正常运行时间?

阅读更多
问:

您好,脚本专家! 如何确定服务器的正常运行时间?

-- LF

答:

您好,LF。 这个问题很简单。 毕竟,我们假设您谈论的是 Windows 服务器,而 Windows 服务器是永远不停机的,对吗? 因此,正常运行时间肯定是无限长的。 问题得到了解决。

那么,我们假设 Windows 服务器停机(可能是因为某个非 Windows 用户偷偷潜入并将电源插头或其他什么东西拔掉了)。 如果您想知道运行 Windows XP 或 Windows Server 2003 的计算机的系统正常运行时间,可使用以下脚本:

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
    ("Select * From Win32_PerfFormattedData_PerfOS_System")
 
For Each objOS in colOperatingSystems
    intSystemUptime = Int(objOS.SystemUpTime / 60)
    Wscript.Echo intSystemUptime & " minutes"
Next

正如您所看到的,我们连接至 WMI 服务,然后使用 ExecQuery 方法来检索 Win32_PerfFormattedData_PerfOS_System 类中的所有实例。 (顺便提一下,这解释了该脚本只能在 Windows XP 或 Windows Server 2003 上运行的原因: 只有 Windows 的这两个版本中含有 Win32_PerfFormattedData_PerfOS_System 类。)

Win32_PerfFormattedData_PerfOS_System 包含许多与操作系统相关的性能计数器,其中包括 SystemUpTime,其可指示您机器已经运行了多长时间(以秒计)。 我们使用下面这行代码来获取 SystemUpTime 的值,并将其除以 60(这样显示的正常运行时间的单位为分钟,而不是秒),然后再将其转换为整数,除去小数点后的所有数字:

intSystemUptime = Int(objOS.SystemUpTime / 60)

是的,那正是一小行代码所要做的,简直太多了,不是吗? 然后我们回显变量 intSystemUptime 的值就可以了。

好了,除非您运行的是 Windows 2000,否则问题就解决了。 正如前面所述,上述脚本不能在 Windows 2000 上运行,Windows 2000 甚至从没听说过 Win32_PerfFormattedData_PerfOS_System 类。 幸运的是,存在一种解决方法;虽然有些笨拙,但毕竟也是一种解决方法:

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
    ("Select * from Win32_OperatingSystem")
 
For Each objOS in colOperatingSystems
    dtmBootup = objOS.LastBootUpTime
    dtmLastBootupTime = WMIDateStringToDate(dtmBootup)
    dtmSystemUptime = DateDiff("n", dtmLastBootUpTime, Now)
    Wscript.Echo dtmSystemUptime & " minutes"
Next
 
Function WMIDateStringToDate(dtmBootup)
    WMIDateStringToDate = CDate(Mid(dtmBootup, 5, 2) & "/" & _
        Mid(dtmBootup, 7, 2) & "/" & Left(dtmBootup, 4) _
            & " " & Mid (dtmBootup, 9, 2) & ":" & _
                Mid(dtmBootup, 11, 2) & ":" & Mid(dtmBootup,13, 2))
End Function

在此脚本中,我们连接至 WMI 服务,然后查询 Win32_OperatingSystem 类;那是因为 Win32_OperatingSystem 中包含一个属性 – LastBootUpTime – 该属性可告诉您计算机上次启动的时间。 这一点非常有用: 如果我们从当前时间中减去 LastBootUpTime,我们就会知道 – 没错 – 计算机已经运行了多长时间。

唯一棘手的部分是,与所有 WMI 日期和时间一样,LastBootUpTime 是以 UTC(通用时间坐标)格式存储的。 那就意味着将返回下面这样的值:

20050726071152.500000-420

在进行尝试之前,请不要费神从当前日期和时间中减去该值;那样做是徒劳的。 我们需要将该值转换成看起来更像实际日期和时间的形式;这正是我们之所以调用一个由我们编写的函数的原因,该函数可将 UTC datetime 值转换成常规的老式日期/时间值:

dtmLastBootupTime = WMIDateStringToDate(dtmBootup)

注意。 我们将不对该函数的工作方式进行介绍。 如果您对此感兴趣,请参阅 Microsoft Windows 2000 Scripting Guide(英文)中的此部分

转换完成后,我们通过 DateDiff 函数从当前时间中减去上次启动时间:

dtmSystemUptime = DateDiff("n", dtmLastBootUpTime, Now)

正如您所看到的,我们将三个参数传递给 DateDiff:

“n”,表示以分钟为单位报告时间差。

dtmLastBootUpTime,用来存储转换后的 datetime 值的变量。

Now,当前日期和时间。

我们接下来要做的就是以分钟为单位回显系统正常运行时间。

正如前面所述,我们无法想象您为何需要对 Windows 计算机使用这样一个脚本,而只是以防万一…。

分享到:
评论

相关推荐

    Node.js-uptimey是一个开源的服务器正常运行时间监视器

    `uptimey` 是一个基于 `Node.js` 的开源服务器正常运行时间监视器,专为跟踪和确保服务的高可用性而设计。它允许开发者轻松地监控他们的服务器和应用程序,确保在出现故障时能够及时收到警报,从而提高系统的稳定性...

    正常运行时间:服务器的正常运行时间监视和状态页面

    此存储库包含的开源正常运行时间监控器和状态页面,由。 使用 ,您可以拥有自己的无限和免费的正常运行时间监控器和状态页面,完全由GitHub存储库提供支持。 我们将“用作事件报告,将“用作正常运行时间监视器,并...

    服务器运行报告模板(1).doc

    综上所述,服务器运行报告是对服务器全方位健康状况的记录,包括硬件性能、操作系统稳定性、网络连接状态以及应用软件的运行情况,其目的是为了保证服务器的正常运行,预防潜在问题,提升服务质量和用户体验。...

    C# 自动Ping 检测服务器是否运行正常

    本文将深入探讨如何使用C#实现自动Ping检测服务器是否运行正常,以及如何通过配置文件进行参数设置。 首先,Ping是一种简单但实用的网络诊断工具,它利用ICMP协议向目标主机发送Echo请求,并等待回显应答,以此判断...

    ServerStatus, 服务器状态网站脚本,显示正常运行时间( 天数),空闲内存,免费硬盘.zip

    ServerStatus, 服务器状态网站脚本,显示正常运行时间( 天数),空闲内存,免费硬盘 社区服务器状态现在有一个社区论坛向所有人开放。 https://www.pilabs.io/forum/ ServerStatusServerStatus是基于运行时间检查器...

    服务器宕机怎么办?服务器故障应急预案.docx

    而在服务器正常运行时,通过定期检查硬件状况、更新系统软件、打补丁和优化系统配置,可以有效地预防服务器宕机的发生。 综上所述,服务器宕机应急预案的制定和实施是企业抵御IT灾难、确保业务连续性的重要保障。...

    服务器交接单

    通过以上分析,我们可以看出服务器交接单不仅是服务器转移过程中的一个重要环节,也是保障服务器正常运行和管理的有效工具。正确填写和使用服务器交接单,对于提高工作效率、减少潜在风险具有重要意义。

    服务器无法正常运行的原因分析.doc

    然而,即使服务器被设计成具有高稳定性的系统,也可能因为多种原因导致无法正常运行,给用户带来不便。以下是对服务器无法正常运行的几个常见原因的详细分析。 首先,硬件设备是服务器运行的基础。随着时间的推移,...

    uptimey:简单的服务器正常运行时间监控器

    简单的服务器正常运行时间监控 使用正常运行时间,您可以轻松监控服务器的正常运行时间。 与服务器进行交互时,它将输出您白天可能需要的有用数据。 不相信我,请查看下面的屏幕截图。 导入说明:它适用于运行...

    ArcGIS10服务器未运行的最佳解决办法

    经常会有ArcGIS在安装或者运行一段时间后,出现后台服务器未运行而造成ArcGIS无法正常启动的现象,为此专题写了这份最佳解决办法,希望对大家有所帮助。

    与传统服务器相比-云服务器有哪些优势?.docx

    而且,在云服务器架构中,服务通常具备自动迁移能力,即便遇到问题也可以快速切换至其他正常运行的节点,确保业务的连续性。 云服务器还提供了更好的响应速度。得益于其多线互通的带宽优势,云服务器能够为用户提供...

    服务器运行维护管理流程

    服务器运行维护管理流程是确保服务器系统正常运行的必要步骤。通过该流程,可以让服务器系统保持稳定运行,避免出现问题,从而保障工作的顺利进行。 一、日常服务器查看 服务器运行维护管理流程的第一步骤是日常...

    WEB服务器运行状况监控 v2.1

    考虑到服务器环境多样化,WEB服务器运行状况监控 v2.1 应该具备跨平台特性,支持Windows、Linux、Unix等主流操作系统,确保在不同环境下都能正常工作。 六、报警与通知 当监控参数超出预设阈值时,软件应能自动...

    服务器巡检记录.doc

    8. **其他功能检查**:包括但不限于图像和信息接收、邮件服务、数据库服务等,确保各项功能正常运行。 9. **数据备份**:记录最近的备份时间,确认备份的完整性和可用性。定期备份是防止数据丢失的重要措施。 10. ...

    服务器日常维护表.doc

    - **系统运行时间**:关注服务器连续运行的时间,过长可能需要计划性维护或重启。 以上维护内容旨在确保服务器的稳定运行,减少意外停机,保障业务连续性和数据安全性。对这些方面进行定期检查和记录,将有助于...

    服务器加电测试表格.doc

    - **散热检测**:检查服务器是否有热风吹出,确认散热系统正常运行。 - **电源连接检查**:确保电源线连接牢固,没有松动或接触不良的情况。 - **服务器外壳检查**:检查服务器是否有移动或损害痕迹,以排除运输...

    服务器运行情况.docx

    合理的硬件资源配置和虚拟化技术应用对于保证服务器的正常运行至关重要。 软件环境也对服务器的运行情况产生影响。操作系统的配置、应用程序的优化以及数据库的索引和缓存设置等都会直接影响服务器的性能。及时进行...

    uptime:我们的状态页可跟踪服务器和服务的正常运行时间

    该存储库包含由提供支持的开源网络正常运行时间监控器和用于状态页面。 借助 ,您可以获得自己不受限制的免费正常运行时间监控器和状态页面,该页面完全由GitHub存储库提供支持。 我们将“用作事件报告,将“用作...

    服务器运行状态监控系统.docx

    白名单监测则关注服务器上的关键守护进程,确保它们的正常运行。 4. **日志文件监控**:监控日志文件大小,一旦超过预设阈值,会触发告警通知,提醒管理员清理或扩展存储空间。 5. **Web服务器监控**:对Web服务器...

Global site tag (gtag.js) - Google Analytics