早上好,
我已经递交了一个总共有10万台机器的域名,其中有15万个DNSlogging。 DNSlogging全部位于同一个域的单个正向查找区域,只是有用的,没有反向查找区域。
由于清理和老化不是一个select(只是我的运气!),我需要find一个简单的方法来杀死一堆陈旧的logging。
最简单的出发点是要删除时间戳超过一年(大约2700条logging)的所有logging – 但其中一些仍然响应ping。
可能性是因为我们使用DHCP并且IP已经被赋予新的主机。
通常情况下,反向查找zoen现在可以方便地实现,这样我就可以为一个IP寻找多个注册,但正如我之前所说 – 没有一个。
任何人都知道你的头顶上一个简单的方法来寻找重复? 我已经考虑从DNS完全导出到CSV,并开始sorting和过滤,但对于超过2K的logging,我希望有一些更容易一些。
另外,由于我们运行一些工具包的糟糕性质,只是删除logging并允许重新注册发生不是一个选项!
想法?
编辑:并不是所有的机器都join了AD,所以AD / DNS comparisson是不可能的。
编辑2:Upvotes全面,这里有一些非常好的build议! 我已经开始使用Excel中的导出和共同映射工作,对正在进行的每个IP /主机进行ping操作,logging到testing文件中,以查看真实的和不真实的,并等待数据包捕获的更改批准以开始实时监视。 这些脚本也是有用的,虽然我不打算按照他们现在的格式来使用它们,但是给了我一个很好的基础,可以为我自己做些事情。 感谢大家!
如果您可以导出为CSV然后导入到Excel然后您可以使用条件格式生成重复列表?
http://www.tech-recipes.com/rx/35290/excel-2013-find-duplicate-data-using-conditional-formatting/
我会用nmap来validation所有活着的主机,这些主机应该为你清除其余的死logging。 尽pipe如此,我强烈build议从这一点来清除。 听起来很有趣:)
这里有两个脚本(几乎相同) – 一个find重复的IP,一个find重复的名字。
#region Find duplicate name in dns records $DupNames = Get-WmiObject -ComputerName 'dc2008' ` -Namespace 'root\MicrosoftDNS' ` -Class MicrosoftDNS_AType ` -Filter "ContainerName='yadsarah.org.il'" | Select-Object RecordData, TimeStamp, OwnerName | ` Group-Object OwnerName | Where-Object {$_.Count -gt 1} $DupNamesArr = @() foreach ($RecordGroup in $DupNames) { foreach ($Record in $RecordGroup.Group) { $RecordObj = New-Object System.Object $RecordObj | Add-Member -MemberType NoteProperty -Name 'Name' -Value $Record.OwnerName $RecordObj | Add-Member -MemberType NoteProperty -Name 'IPAddress' -Value $Record.RecordData $RecordObj | Add-Member -MemberType NoteProperty -Name 'TimeStamp' -Value $Record.TimeStamp $DupNamesArr += $RecordObj } } #endregion #region Find duplicate IP in dns records $DupIPs = Get-WmiObject -ComputerName 'dc2008' ` -Namespace 'root\MicrosoftDNS' ` -Class MicrosoftDNS_AType ` -Filter "ContainerName='yadsarah.org.il'" | Select-Object RecordData, TimeStamp, OwnerName | ` Group-Object RecordData | ?{$_.Count -gt 1} $DupIPArr = @() foreach ($RecordGroup in $DupIPs) { foreach ($Record in $RecordGroup.Group) { $RecordObj = New-Object System.Object $RecordObj | Add-Member -MemberType NoteProperty -Name 'Name' -Value $Record.OwnerName $RecordObj | Add-Member -MemberType NoteProperty -Name 'IPAddress' -Value $Record.RecordData $RecordObj | Add-Member -MemberType NoteProperty -Name 'TimeStamp' -Value $Record.TimeStamp $DupIPArr += $RecordObj } } #endregion
笔记:
某些系统(如负载平衡)需要一些重复的logging才能正常工作。
您可以使用WMI添加计算机名称和IP,从而validationlogging。
时间戳0的logging是静态的,意味着它们是手动添加的(并且更可能是重要的)。
也许你可以logging所有真实的DNS请求一段足够长的时间(如果你想捕捉每季度一次的query-all-printer-page-statistics脚本,这实际上可能是几个月)。 然后删除所有从未请求的logging。