我发现使用此命令似乎很少有文件的大小增加:
find / -size +50M
其中大多数是日志文件,所以我想知道删除日志文件是否可以安全。有问题的日志文件是:
/var/log/httpd/mySite.com-access.log.1
/var/log/httpd/access_log.1
/var/log/httpd/mySite.com-access.log
/var/log/maillog.4.gz
/var/log/maillog
服务器操作系统版本是:cat /etc/centos-release CentOS release 6.2 (Final)
如果可以删除 - 我该怎么做?我是否只需使用 删除文件rm
,还是应该通过以下方式“清除其内容”:
cat /dev/null > access_log.1
答案1
删除它们安全吗?很有可能是安全的。某些文件(例如您的邮件日志)您可能只想通过 连接它们cat /dev/null > somefile
。大多数以 .1 结尾的文件已被日志轮换轮换掉,请检查其配置文件,并且日志轮换通常会删除较旧的文件。因此,通常可以删除以 .1 结尾的日志文件。
删除日志文件是否是个好主意是完全不同的问题。根据服务器的状况等,删除您必须保留指定时间的文件可能会产生潜在的法律后果。如果是您的服务器,那么最好保留文件,只要您认为有必要。然而,在删除文件之前,最好先查看一些文件,寻找经常重复的消息和/或短语“错误”、“拒绝”和“中止”。
答案2
logrotate
通常默认设置为每周轮换一次并保留 4 个旧日志。您可以通过将其更改为每天轮换一次并保留 28 个旧日志来获得更一致的空间使用率。您仍然保留相同的时间段,但现在过去 28 天中的 26 天将始终被压缩,而不是随着一周的推移在 27 天和 21 天之间变化。您可以通过删除delaycompress
logrotate 配置中的选项将其设置为过去 28 天中的 27 天。
logrotate 的配置位于 中/etc/logrotate.d/
。通常每个生成日志的服务都有一个文件。
就删除而言,对于已经轮换的旧日志文件(以.1
或结尾的文件.4.gz
)来说,这没什么大不了的,但对于正在写入的日志文件,使用rm
可能会导致一种奇怪的情况,即该文件不再存在于该目录中,但进程仍将其打开并正在写入。您将不会释放任何磁盘空间,也无法获取正在写入的日志。每个服务都有不同的方法来通知它应该启动一个新的日志文件,这些方法通常在postrotate
logrotate 配置文件的部分中编纂。
答案3
如果您不需要它们(如果需要,请仔细检查,它们中可能存在错误、安全漏洞等),您可以删除它们。删除后(或在它们中回显“”),为了安全起见,请重新启动生成这些日志文件的服务。
如果您经常遇到日志文件大小问题,请考虑安装“logrotate”实现,它会在指定的时间后压缩、存档和删除日志文件。
答案4
为什么要删除日志文件?
如果您的空间非常紧张,请将它们刻录到 CD 或 DVD,或将它们重定向到 USB 闪存驱动器,这样,在需要它们时,至少可以在某个地方找到它们。