Jin*_*Heo 11 linux centos apache-2.2
在我的 Web 服务器(正在运行 apache,Linux CentOS)中,有一个非常大的日志文件(50 GB)。该 Web 服务器在生产中有一些 Web 服务。
当我尝试删除日志文件时,Web 服务器在大约 10 秒内没有响应。(服务结束时间。)
rm -f monthly.log
Run Code Online (Sandbox Code Playgroud)
有没有办法在不冻结apache的情况下删除这个大文件?
qua*_*nta 23
首先通过 旋转它logrotate,使用这样的配置:
/path/to/the/log {
missingok
notifempty
sharedscripts
daily
rotate 7
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
compress
}
Run Code Online (Sandbox Code Playgroud)
然后在午夜创建一个 cron 作业来删除旋转的文件:
30 2 * * * nice -n 19 ionice -c2 -n7 rm -f /path/to/the/log/file.1
Run Code Online (Sandbox Code Playgroud)
为了更快地删除大文件,您可以使用truncate命令 - 说将其缩小到零大小,然后将其删除:
truncate -s 0 monthly.log && rm -f monthly.log
Run Code Online (Sandbox Code Playgroud)
按照 quanta 的建议,您需要先对它进行 logrotate。
| 归档时间: |
|
| 查看次数: |
3901 次 |
| 最近记录: |