Как получить работоспособность системы за последние 24 часа - PullRequest
0 голосов
/ 22 июня 2010

Я знаю, как получить работоспособность системы Windows с момента последней перезагрузки в VBScript или C #, но как получить работоспособность системы за последние 24 часа?Машина могла выходить из строя несколько раз в течение этого периода.

Ответы [ 2 ]

0 голосов
/ 22 июня 2010

Используйте журналы событий. В системных журналах вы должны увидеть событие # 6006 (источник: EventLog), когда система выйдет из строя, и событие # 6009 (тот же источник), когда она вернется. См. KB статья 196452 ​​ для получения дополнительной информации (обратите внимание, что неожиданные завершения работы, то есть сбой, приведут к событию # 6008 вместо # 6006).

Таким образом, если вы пробегаете все события за последние 24 часа, ваше время безотказной работы составляет 24 часа минус все время между событиями 6006 и 6009.

0 голосов
/ 22 июня 2010

Если вам не нужен ответ с точностью до секунды, вы можете периодически записывать текущее время обновления в файл или запись базы данных один раз в 1 или 5 минут. Когда текущее время работы меньше, чем постоянное время работы, вы знаете, что вам нужно перейти к следующей записи, потому что система вышла из строя с момента последнего отчета. Затем используйте сумму всех значений времени работы за период, чтобы определить общее время работы за этот период. Если ваше время работоспособности охватывает границы периода (например, дни), вы можете также отслеживать время начала каждой записи времени работоспособности, чтобы вы знали, сколько это было до и сколько было после границы ( например, сколько из этого рекорда было со вчерашнего дня). Или вы можете просто принудительно начать новую запись каждый раз, когда вы пересекаете границу, если ваша граница постоянна (например, если ваши границы всегда представляют дни в пределах определенного часового пояса). Однако, если у вас есть возможность подсчитать время безотказной работы за последние 24 часа, а также рассчитать время безотказной работы за весь вчерашний день (который перекрывает последние 24 часа), у вас нет фиксированной границы, вдоль чтобы сделать это, вам нужно будет просто записать время начала и время работы и применить границы позже (как я описал вначале).

Честно говоря, я этого не проверял, но я бы попробовал.

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