是否可以从Windows上的.net应用程序监控Linux服务器上的时间?

时间:2009-06-22 12:47:38

标签: .net linux time

我想监控几台服务器上的时间。理想情况下,我会在Windows机器上运行的应用程序中执行此操作。这是可能的,我可以从哪里开始?我对Linux几乎一无所知。

4 个答案:

答案 0 :(得分:4)

如果您可以在相关计算机上安装NTP(网络时间协议)服务器,则可以通过NTP查询时间。 NTP是一个简单的协议,因此实现客户端非常简单。

  • 可以找到有关NTP的文档here.
  • 可以找到C#NTP客户端库here
  • 可以找到ntpd(标准NTP守护程序)的文档here

答案 1 :(得分:2)

如何运行像apache / nginx这样的简单web服务器,并拥有一个php(或cgi或其他)脚本,它只返回你想要的任何格式的时间。然后您的.net应用程序可以简单地查询这些页面以获取信息。例如:

Linux服务器1:http://linuxserver1/time.php

Linux服务器2:http://linuxserver2/time.php

两台服务器上的php脚本可以是:

<?php
echo date("F j, Y, g:i a");  // Looks like: March 10, 2001, 5:16 pm
// More information on changing the format of the date: http://php.net/date
?>

然后您的.NET应用程序将使用inet控件通过HTTP协议访问这些远程网页。这应该是一种快速,简单和灵活的实施方式。

灵活性:

此解决方案的另一个优点是,您还可以通过制作更多的PHP脚本,或者只是让您的PHP脚本接受一些参数来监控网络服务器可以找到的任何内容(而不仅仅是时间)。例如:

获取时间:http://linuxserver2/index.php?do=time

获取CPU使用率:http://linuxserver2/index.php?do=cpu

获取磁盘使用情况:http://linuxserver2/index.php?do=disk

它也很容易调试。只需将浏览器指向脚本位置并查看输出即可查看错误。您还可以查看apache(webserver)日志以查找错误。

<强>安装:

  1. 使用它在您的ubuntu服务器上安装apache和php:

    sudo apt-get install apache2

    sudo apt-get install php5

    sudo apt-get install libapache2-mod-php5

    sudo /etc/init.d/apache2 restart

  2. 在/ var / www /目录中创建time.php脚本。

  3. 编写可以查询html页面的.net应用程序。你已经完成了。

答案 2 :(得分:1)

您应该可以使用SNMP从Windows访问系统时间。

根据我发现at this link的评论:

看起来以下OID返回当前日期/时间

.1.3.6.1.4.1.2021.100.4.0

样品:

date; snmpwalk -Cc -On -v2c -c public localhost .1.3.6.1.4.1.2021.100.4.0

Thu May 21 14:21:47 CDT 2009

.1.3.6.1.4.1.2021.100.4.0 = STRING:5月21日星期四14:21:47

答案 3 :(得分:1)

正如TwistedAphid建议的那样,SNMP是一个不错的选择。还有:

这些通常是Linux系统上inetd包的一部分。

这是example of a Java RFC 868 client