关于日志文件的清除。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于日志文件的清除。相关的知识,希望对你有一定的参考价值。

服务器启动进入操作系统后跳出个对话框,标题是“Dell OpenMange Array Manager”,内容是“Log file is full.Please clear old events from the log file”.在控制面板中的管理工具里的事件查看器中已清除过所有日志,但还会跳出对话框,请教高手们该如何解决。谢谢!

说实话我不太懂,帮你 找到这篇文章,你研究一下好了:
什么是日志文件?它是一些文件系统集合,依靠建立起的各种数据的日志文件而存在。在任何系统发生崩溃或需要重新启动时,数据就遵从日志文件中的信息记录原封不动进行恢复。日志对于系统安全的作用是显而易见的,无论是网络管理员还是 黑客都非常重视日志,一个有经验的管理员往往能够迅速通过日志了解到系统的安全性能,而一个聪明的黑客会在入侵成功后迅速清除掉对自己不利的日志。无论是攻还是防,日志的重要性由此可见。下面我们就来简单讨论一下日志文件的清除方法。

一、日志文件的位置

Windows 2000的系统日志文件有应用程序日志,安全日志、系统日志、DNS服务器日志等等,应用程序日志、安全日志、系统日志、DNS日志默认位置:%systemroot%system32config。

安全日志文件:%systemroot%system32configSecEvent.EVT

系统日志文件:%systemroot%system32configSysEvent.EVT

应用程序日志文件:%systemroot%system32configAppEvent.EVT

有的管理员很可能将这些日志重定位(所以日志可能不在上面那些位置),其中EVENTLOG下面有很多的子表,在里面可查到以上日志的定位目录。

二、清除自己电脑中的日志

如果你要清除自己电脑中的日志,可以用管理员的身份来登录Windows,然后在“控制面板”中进入“管理工具”,再双击里面的“事件查看器”。打开后我们就可以在这里清除日志文件了,里面有应用程序、安全和系统日志文件。举个例子,比方说你想清除安全日志,可以右键点击“安全日志”,在弹出的菜单中选择“属性”。接下来在弹出的对话框中,点击下面“清除日志”按钮就可以清除了,如果你想以后再来清除这些日志的话,可以将“按需要改写尺寸”,这样就可以在达到最大日志尺寸时进行改写事件了,不会提示你清除日志。

三、清除远程主机上的日志

大多数情况下,IIS的日志会忠实地记录它接收到的任何请求(也有特殊的不被IIS记录的攻击),一个优秀的系统管理员会利用这点来发现入侵的企图,保护自己的系统。所以如果你是黑客,入侵系统成功后第一件事便是清除日志,擦去自己的形迹,这时可以用以下两个办法:一是自己编写批处理文件来解决,编写一个能清除日志的批处理非常简单,方法是:新建一个具有如下内容的批处理文件:

@del c:winntsystem32logfiles*.*

@del c:winntsystem32config*.evt

@del c:winntsystem32dtclog*.*

@del c:winntsystem32*.log

@del c:winntsystem32*.txt

@del c:winnt*.txt

@del c:winnt*.log

@del c:del.bat

把上面的内容保存为del.bat备用。在上面的代码中echo是DOS下的回显命令,在它的前面加上“@”前缀字符,表示执行时本行在命令行或DOS里面不显示,另外del命令大家一定清楚吧?它是删除文件命令。

接下来再新建一个批处理文件,内容如下:

@copy del.bat \%1c$

@echo 向肉鸡复制本机的del.bat……OK

@psexec \%1 c:del.bat

@echo 在肉鸡上运行del.bat,清除日志文件……OK

保存为clean.bat即可,假设已经与肉鸡进行了Ipc连接,然后在CMD下输入:clean.bat 肉鸡IP,即可清除肉鸡上的日志文件。

清除日志的另外一个方法是借助第三方软件,如著名黑客软件流光的开发者黑客小榕的elsave.exe,就是是一款可以远程清除系统日志、应用程序日志、安全日志的软件,大家可以在网上下载到。elsave.exe使用起来很简单,首先利用获得的管理员账号与对方建立IPC会话:net use \ip pass /user: user,然后在命令行下执行如下命令:elsave -s \ip -l application -C,这样就删除了安全日志。
参考技术A

它是一些文件系统集合,依靠建立起的各种数据的日志文件而存在。在任何系统发生崩溃或需要重新启动时,数据就遵从日志文件中的信息记录原封不动进行恢复。日志对于系统安全的作用是显而易见的,无论是网络管理员还是 黑客都非常重视日志,一个有经验的管理员往往能够迅速通过日志了解到系统的安全性能,而一个聪明的黑客会在入侵成功后迅速清除掉对自己不利的日志。无论是攻还是防,日志的重要性由此可见。下面我们就来简单讨论一下日志文件的清除方法。

清除正在使用的日志文件

【中文标题】清除正在使用的日志文件【英文标题】:Clearing a log file which is in use 【发布时间】:2011-05-06 06:42:27 【问题描述】:

在我的工作中,我正在处理一个写入日志文件的大型 .NET 应用程序。我们将应用程序称为CompanyApplication。我编写了一个简单的 Python 脚本来清除日志:

file_object = open('C:\\log.txt', 'w')
file_object.write("")
file_object.close()

CompanyApplication.exe 没有运行时,它可以正常工作。但是,当 CompanyApplication.exe 运行时,我收到此错误:

回溯(最近一次通话最后一次): 中的文件“deleteLog.py”,第 1 行 file_object = open('C:\log.txt', 'w') IOError:[Errno 13] 权限被拒绝:'C:\log.txt'

这一定是因为CompanyApplication 持有日志文件的锁。有什么办法可以“解锁”日志文件,清除它,然后将锁“交还”给CompanyApplication?我更喜欢可以自动化的解决方案(这就是我首先编写 Python 脚本的原因)。

附加信息:我能做的只有这么多来改变CompanyApplication 本身。我正在使用 Windows XP Pro。我有管理员权限。

【问题讨论】:

我想当时处理 SIGHUP 已经结束了...... 【参考方案1】:

没有。正如你所说,CompanyApplication 在文件上有一个lock。如果任何其他应用程序可以随时解锁,那么锁定的意义何在?

【讨论】:

好吧,最终,CompanyApplication 和 Python 脚本都由我启动了,我是一个拥有管理员权限的人。【参考方案2】:

您需要在 .NET 程序中为日志文件的 open 调用填写 FileShare 参数。

具体来说你会想allow read/write sharing。

根据您的 .NET 应用程序在写入日志时的工作方式,您所建议的内容可能无法按预期工作,并且可能会导致 .NET 程序出现问题。

您可以简单地在 .NET 程序中启动一个线程,该线程创建一个事件并等待它。稍后您可以从 Python 程序中设置该事件,.NET 将安全地清除它自己的日志文件并重置该事件。

【讨论】:

在 Windows 上用 Python 打开文件句柄时是否有等效的方法来设置 FileShare 类型参数?【参考方案3】:

文件的输出很可能是缓冲的,因此即使您可以接管文件并将其清空,您也无法在正在运行的程序中清空缓冲区。结果可能是文件开头的部分条目,或者程序继续在前一个位置写入,这将用垃圾填充到该位置的所有内容。

为了能够在应用程序运行时清空日志,必须重写应用程序中的日志记录。它必须只在需要时打开日志文件,并在写入后关闭它。这样,您的脚本可以尝试清除文件,如果失败,它可以稍等片刻,然后重试。

【讨论】:

以上是关于关于日志文件的清除。的主要内容,如果未能解决你的问题,请参考以下文章

关于linux centos 批理清除文件

SQL Server 快速清除日志文件的方法

关于SQL Server事务日志的问题汇总

sql server 2008 r2 日志文件过大怎么清除

sqlserver 2005中文版如何清除.LDF的日志文件

easylogging++:在应用程序启动时清除日志文件