Можно ли контролировать время на сервере Linux из приложения .net на Windows? - PullRequest
1 голос
/ 22 июня 2009

Я бы хотел следить за временем на нескольких серверах. В идеале я бы сделал это в приложении, работающем на компьютере с Windows. Возможно ли это и с чего мне начать? Я почти ничего не знаю о Linux.

Ответы [ 4 ]

4 голосов
/ 22 июня 2009

Если вы можете установить NTP (сетевой протокол времени) на рассматриваемые машины, вы можете запросить время через NTP. NTP - это простой протокол, поэтому реализация клиента будет довольно простой.

  • Документацию по NTP можно найти здесь. .
  • Здесь находится клиентская библиотека C # NTP здесь .
  • Документацию по ntpd (стандартному демону NTP) можно найти здесь .
2 голосов
/ 22 июня 2009

Как насчет запуска простого веб-сервера, такого как 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 принимать некоторые аргументы. Например:

Чтобы узнать время: http://linuxserver2/index.php?do=time

Для загрузки процессора: http://linuxserver2/index.php?do=cpu

Чтобы использовать диск: http://linuxserver2/index.php?do=disk

Это также очень легко отлаживать. Просто наведите ваш браузер на местоположение скрипта и посмотрите на вывод, чтобы увидеть ошибки. Вы также можете просматривать журналы apache (веб-сервера) на наличие ошибок.

Установка:

  1. Используйте это для установки apache и php на ваш сервер Ubuntu:

    sudo apt-get install apache2

    sudo apt-get install php5

    sudo apt-get install libapache2-mod-php5

    sudo /etc/init.d/apache2 restart

  2. Создайте свой скрипт time.php в каталоге / var / www /.

  3. Запрограммируйте приложение .net, которое может запрашивать HTML-страницы. И все готово.

1 голос
/ 22 июня 2009

Как предложил TwistedAphid, SNMP - хороший выбор. Также есть:

Обычно они являются частью пакета inetd в системах Linux.

Вот пример клиента Java RFC 868 .

1 голос
/ 22 июня 2009

Вы должны использовать SNMP для доступа к системному времени из Windows.

Из комментариев, которые я нашел по этой ссылке :

Похоже, следующий 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

Чт, 21 мая 14:21:47 CDT 2009

.1.3.6.1.4.1.2021.100.4.0 = STRING: четверг, 21 мая 14:21:47 2009

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...