2010-06-22 2 views
0

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

ответ

0

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

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

0

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

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

Смежные вопросы