Posted in
Windows Powershell,
Windows Server |
No Comment | 5,784 views | 17/01/2010 12:03
5651 yasasıyla birlikte, ofisinize ait DHCP loglarını 6 aylık bir süre boyunca imzalayarak saklamanız gerekiyor. DHCP servisi, farklı bir sunucu üzerinde bulunuyorsa, DHCP loglarını Powershell sayesinde herhangi bir FTP programına ihtiyaç olmadan imzalama yapacağınız sunucuya gönderebilirsiniz. Bu işlem ile sadece DHCP loglarının değil HTTP loglarının da arşivlenmesini sağlayabilirsiniz.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
| # 5651 Log Sender
# Yusuf Ozturk - http://www.yusufozturk.info
# In God We Trust, All Others We Use Powershell
# Get Yesterday
$Day = Get-Date -uformat %A
$Date = (Get-Date).AddDays(-1).ToString("yyyyMMdd")
If ($Day -eq "Pazar")
{
$Day = "Sat"
}
ElseIf ($Day -eq "Cumartesi")
{
$Day = "Fri"
}
ElseIf ($Day -eq "Cuma")
{
$Day = "Thu"
}
ElseIf ($Day -eq "Perşembe")
{
$Day = "Wed"
}
ElseIf ($Day -eq "Çarşamba")
{
$Day = "Tue"
}
ElseIf ($Day -eq "Salı")
{
$Day = "Mon"
}
ElseIf ($Day -eq "Pazartesi")
{
$Day = "Sun"
}
# Get DHCP IPV4
$DHCPV4Log = "C:\Windows\System32\dhcp\DhcpSrvLog-" + $Day + ".log"
# Get DHCP IPV6
$DHCPV6Log = "C:\Windows\System32\dhcp\DhcpV6SrvLog-" + $Day + ".log"
# FTP Paths
$DHCPv4Dir = "ftp://username:password@yusufozturk.info/Data/RH_Ofis_DHCPv4_" + $Date + ".log"
$DHCPv6Dir = "ftp://username:password@yusufozturk.info/Data/RH_Ofis_DHCPv6_" + $Date + ".log"
# Prepare Files
$Webclient = New-Object System.Net.WebClient
$DHCPv4Uri = New-Object System.Uri($DHCPv4Dir)
$DHCPv6Uri = New-Object System.Uri($DHCPv6Dir)
# Send to Log Server
$Webclient.UploadFile($DHCPv4Uri, $DHCPv6Log)
$Webclient.UploadFile($DHCPv6Uri, $DHCPv4Log) |
# 5651 Log Sender
# Yusuf Ozturk - http://www.yusufozturk.info
# In God We Trust, All Others We Use Powershell
# Get Yesterday
$Day = Get-Date -uformat %A
$Date = (Get-Date).AddDays(-1).ToString("yyyyMMdd")
If ($Day -eq "Pazar")
{
$Day = "Sat"
}
ElseIf ($Day -eq "Cumartesi")
{
$Day = "Fri"
}
ElseIf ($Day -eq "Cuma")
{
$Day = "Thu"
}
ElseIf ($Day -eq "Perşembe")
{
$Day = "Wed"
}
ElseIf ($Day -eq "Çarşamba")
{
$Day = "Tue"
}
ElseIf ($Day -eq "Salı")
{
$Day = "Mon"
}
ElseIf ($Day -eq "Pazartesi")
{
$Day = "Sun"
}
# Get DHCP IPV4
$DHCPV4Log = "C:\Windows\System32\dhcp\DhcpSrvLog-" + $Day + ".log"
# Get DHCP IPV6
$DHCPV6Log = "C:\Windows\System32\dhcp\DhcpV6SrvLog-" + $Day + ".log"
# FTP Paths
$DHCPv4Dir = "ftp://username:password@yusufozturk.info/Data/RH_Ofis_DHCPv4_" + $Date + ".log"
$DHCPv6Dir = "ftp://username:password@yusufozturk.info/Data/RH_Ofis_DHCPv6_" + $Date + ".log"
# Prepare Files
$Webclient = New-Object System.Net.WebClient
$DHCPv4Uri = New-Object System.Uri($DHCPv4Dir)
$DHCPv6Uri = New-Object System.Uri($DHCPv6Dir)
# Send to Log Server
$Webclient.UploadFile($DHCPv4Uri, $DHCPv6Log)
$Webclient.UploadFile($DHCPv6Uri, $DHCPv4Log)
Yukarda dikkat etmeniz gereken nokta, DHCP loglarının tarihe göre değil günlere göre tutulduğudur. Sistem lokasyonu Türkiye olduğu için Get-Date yaptığınızda Pazartesi gibi gelecektir günler. Bu yüzden her güne karşılık olarak bir önceki günün İngilizce adını yazdım. Böylece bu scripti Cronjob ile her gece saat 3 gibi çalıştırmanız durumunda, hep bir önceki günün loglarını FTP üzerinden sunucuya gönderecektir. Kolay gelsin.