清理服务器历史logging时,删除/ var / log中的所有文件是否安全?

我需要从正在运行Apache的正在运行的Debian计算机中清除所有系统日志等。

删除/var/log中的所有文件是否安全,而不是重新创build(通过触摸?)其中任何一个? 也就是说,如果突然发现日志文件不存在,所有标准进程会自动重新创build其日志文件,包括正确的默认所有者和权限。

不,不是。 某些日志文件将不会被写入它们的进程重新创build。 你可能最好将空白的日志文件,如cat / dev / null> / var / log /

有些守护进程在kill -HUP之前不会感到满意,因为他们知道自己的日志文件已经改变(特别是当它是mv )。 在做这件事之前,你应该知道他们的行为是什么。

你应该考虑使用mvkill -HUP然后shred移动的文件(而不是cpecho )。

此外,您可能需要阅读man 8 logrotate以获取更多信息。

声誉太低评论,所以我把它放在一个答案:

要清空/ var / log /包括子目录中的每个文件,您可以发出

 find /var/log/ -type f -exec cp /dev/null {} \; 

(自然这是未经testing的)

我会承认是的,把它们抹掉是安全的。 但是,如果不检查那里的日志文件列表或创build它们的应用程序,没有人能够确定地告诉你。 Debian的政策build议它应该是安全的,但可能没有人尝试过。

如果我是你,我会保留一份目录的副本,然后检查系统的function。 不要忘记删除备份:)

通常最好将它们归零,如下所示:

 cp /dev/null /var/log/logname 

这样,如果有任何正在运行的进程已经打开文件句柄来处理日志名称,那么它将能够继续写入文件,而且完全不知道发生了什么。