我发现使用此命令似乎很少有文件堆积起来:
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
删除它们安全吗?很可能是的。有些文件,例如您的邮件日志,您可能只想通过
cat /dev/null > somefile
. 大多数情况下,以 .1 结尾的文件已被日志轮换轮换掉,请检查其配置文件,并且日志轮换通常也会删除旧文件。因此通常可以删除以 .1 结尾的日志文件。天气与否,删除日志文件是一个好主意,这是一个不同的问题。根据这是谁的服务器等等,删除您有义务在指定时间段内保留的文件可能会产生潜在的法律后果。如果它是您的服务器,那么只要您认为有必要,最好保留这些文件。然而,在删除文件之前,最好查看其中的一些文件,寻找经常重复的消息和/或短语“错误”、“拒绝”和“中止”。
logrotate
通常默认设置为每周轮换并保留 4 个旧日志。您可以通过将其更改为每天并保留 28 个旧日志来获得更一致的空间使用情况。您仍然保留相同的时间段,但现在过去 28 天中的 26 天将始终被压缩,而不是随着一周的推移在 27 到 21 天之间变化。delaycompress
通过删除logrotate 配置中的选项,您可以将过去 28 天设为 27 天。logrotate 的配置在
/etc/logrotate.d/
. 通常每个产生日志的服务都有一个文件。就删除而言,对于已经轮换的旧日志文件(以
.1
或结尾的.4.gz
日志文件)并不重要,但对于正在写入的日志文件,使用rm
可能会导致文件不存在的奇怪情况它不再存在于该目录中,但进程仍然打开它并正在写入它。您不会释放任何磁盘空间,也无法访问正在写入的日志。每个服务都有不同的方法来通知它应该启动一个新的日志文件,这些通常在postrotate
logrotate 配置文件的部分中进行编码。如果您不需要它们(如果需要,请仔细检查,其中可能存在错误、安全漏洞等),您可以删除它们。删除(或将“”回显到其中)后,为了安全起见,重新启动生成这些日志文件的服务。
如果您经常遇到日志文件大小的问题,请考虑安装“logrotate”实现,它本身会在指定的时间后压缩、存档和删除日志文件。
为什么要删除日志文件?
如果您非常需要空间,请将它们刻录到 CD 或 DVD,或者将它们重定向到 USB 闪存驱动器,这样您至少可以在需要时将它们放在某个地方。