Jump to content

Отчитане на ъптайм на Windows Server 2012


Recommended Posts

Здравейте колеги админи!

Бих желал да знам има ли начин за отчитане на ъптайм на месечна база (1-31) на Уиндоуски сървър (без значение 2008/2012).

Нямам нужда от автоматизирано решение,ръчно търсене в логовете също ме устройва.

Реално искам да знам за целия месец колко време е бил ъп определен сървър,който се рестартира няколко пъти.

Command Prompt/Shell командите ги знам и не ми вършат работа,тъй като показват времето след последния старт.

 

П.С. Вариант за инсталиране на допълнителен агент не ми е опция, SCCM също. В момента има качен софтуер на който аз не вярвам (искам да проверявам ръчно)

Редактирано от CCNA
Адрес на коментара
Сподели в други сайтове

Това ще му покаже единствено, кога за последно се е рестартирал. Криейтваш си къстъм вю на логовете , което да ти отчита ивент ид 6005  за един месец назад примерно, би трябвало да свърши работа

. create-custom-view-1.png

Адрес на коментара
Сподели в други сайтове

Хуре прочете ли линка или само отгоре отгоре?

Опшън две е uptime.exe

 

Цитат
Summary

A new tool, Uptime.exe, is available for displaying system availability. Uptime.exe can be used to display the current uptime of the local or remote system. Optionally, it can also scan the Event log for key system events such as system restart or computers that are not responding (hanging). Where possible, it also calculates system availability. It is primarily intended for Windows NT Server 4.0 Service Pack 4 or later, though it operates in limited fashion on earlier versions.

 

Редактирано от SunShine
Адрес на коментара
Сподели в други сайтове

22 hours ago, CCNA said:

Нямам нужда от автоматизирано решение,ръчно търсене в логовете също ме устройва.

П.С. Вариант за инсталиране на допълнителен агент не ми е опция, SCCM също. В момента има качен софтуер на който аз не вярвам (искам да проверявам ръчно)

Тук е ключът от палатката.

Благодаря на отзовалите се, друг ако има какво да сподели от своята практика/познания нека го направи.

 

Става дума за 3000 сървъра, на всичките има качени агенти. 10-15-20 сървъра не ми пречи да проверя локално през логовете.

Адрес на коментара
Сподели в други сайтове

#---------------------------------------------------------------
# CalculateSystemUpTimeFromEventLog.ps1
# ed wilson, msft, 9/6/2008
# 
# Creates a system.TimeSpan object to subtract date values
# Uses a .NET Framework class, system.collections.sortedlist to sort the events from eventlog.
#
#---------------------------------------------------------------
#Requires -version 2.0
Param($NumberOfDays = 30, [switch]$debug)

if($debug) { $DebugPreference = " continue" }

[timespan]$uptime = New-TimeSpan -start 0 -end 0
$currentTime = get-Date
$startUpID = 6005
$shutDownID = 6006
$minutesInPeriod = (24*60)*$NumberOfDays
$startingDate = (Get-Date -Hour 00 -Minute 00 -Second 00).adddays(-$numberOfDays)

Write-debug "'$uptime $uptime" ; start-sleep -s 1
write-debug "'$currentTime $currentTime" ; start-sleep -s 1
write-debug "'$startingDate $startingDate" ; start-sleep -s 1

$events = Get-EventLog -LogName system | 
Where-Object { $_.eventID -eq  $startUpID -OR $_.eventID -eq $shutDownID `
  -and $_.TimeGenerated -ge $startingDate } 

write-debug "'$events $($events)" ; start-sleep -s 1

$sortedList = New-object system.collections.sortedlist

ForEach($event in $events)
{
 $sortedList.Add( $event.timeGenerated, $event.eventID )
} #end foreach event
$uptime = $currentTime - $sortedList.keys[$($sortedList.Keys.Count-1)]
Write-Debug "Current uptime $uptime"

For($item = $sortedList.Count-2 ; $item -ge 0 ; $item -- )
{ 
 Write-Debug "$item `t `t $($sortedList.GetByIndex($item)) `t `
   $($sortedList.Keys[$item])" 
 if($sortedList.GetByIndex($item) -eq $startUpID)
 {
  $uptime += ($sortedList.Keys[$item+1] - $sortedList.Keys[$item])
  Write-Debug "adding uptime. `t uptime is now: $uptime"
 } #end if  
} #end for item 

"Total up time on $env:computername since $startingDate is " + "{0:n2}" -f `
  $uptime.TotalMinutes + " minutes."
$UpTimeMinutes = $Uptime.TotalMinutes
$percentDownTime = "{0:n2}" -f (100 - ($UpTimeMinutes/$minutesInPeriod)*100)
$percentUpTime = 100 - $percentDowntime

"$percentDowntime% downtime and $percentUpTime% uptime."

 

е тоя пауър шел ще ти свръши работа смята в проценти ъп и доун тайм за 1 месец назад :)

Редактирано от Wizi
quote -> code
Адрес на коментара
Сподели в други сайтове

Създайте нов акаунт или се впишете, за да коментирате

За да коментирате, трябва да имате регистрация

Създайте акаунт

Присъединете се към нашата общност. Регистрацията става бързо!

Регистрация на нов акаунт

Вход

Имате акаунт? Впишете се оттук.

Вписване
  • Потребители разглеждащи страницата   0 потребители

    • Няма регистрирани потребители разглеждащи тази тема.
×
×
  • Create New...