我想监控几台服务器上的时间。理想情况下,我会在Windows机器上运行的应用程序中执行此操作。这是可能的,我可以从哪里开始?我对Linux几乎一无所知。
答案 0 :(得分:4)
如果您可以在相关计算机上安装NTP(网络时间协议)服务器,则可以通过NTP查询时间。 NTP是一个简单的协议,因此实现客户端非常简单。
答案 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)日志以查找错误。
<强>安装:强>
使用它在您的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
在/ var / www /目录中创建time.php脚本。
编写可以查询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包的一部分。