代码之家  ›  专栏  ›  技术社区  ›  ilivewithian

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

  •  1
  • ilivewithian  · 技术社区  · 16 年前

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

    4 回复  |  直到 16 年前
        1
  •  4
  •   ConcernedOfTunbridgeWells    16 年前

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

    • 可以找到有关NTP的文档 here. .
    • 可以找到c_ntp客户端库 here .
    • 可以找到ntpd(标准ntp守护进程)的文档 here .
        2
  •  2
  •   Wadih M.    16 年前

    运行一个简单的Web服务器,比如apache/nginx,并有一个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脚本接受一些参数,您还可以监视Web服务器几乎可以找到的任何东西(不仅仅是时间)。例如:

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

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

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

    它也很容易调试。只需将浏览器指向脚本位置并查看输出以查看错误。您还可以查看Apache(Web服务器)日志中的错误。

    安装:

    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/directory中创建time.php脚本。

    3. 编写可以查询HTML页的.NET应用程序。你就完了。

        3
  •  1
  •   TWA    16 年前

    你应该能用 SNMP 从Windows访问系统时间。

    从我发现的评论中 at this link :

    如下OID返回当前日期/时间

    .1.3.6.1.4.1.2021.100.4.0条

    样品:

    日期:snmpwalk-c c-on-v2c-c public localhost.1.3.6.1.4.1.2021.100.4.0

    2009年5月21日星期四14:21:47

    .1.3.6.1.4.1.2021.100.4.0=字符串:星期四2009年5月21日14:21:47

        4
  •  1
  •   Anders Lindahl    16 年前

    正如Twistedaphid所建议的,SNMP是一个不错的选择。还有:

    这些通常是 inetd Linux系统上的软件包。

    这里是一个 example of a Java RFC 868 client .