CentOS PHP日志清理工具有哪些
1. logrotate(系统自带核心工具)
logrotate是CentOS系统预装的日志管理工具,专门用于实现日志的自动轮转、压缩、删除及通知。通过自定义配置文件,可针对PHP日志(如PHP-FPM、Apache/Nginx的PHP错误日志)设置轮转规则(如每日轮转、保留7天、压缩旧日志)。配置文件通常位于/etc/logrotate.d/目录下(如php-fpm.conf),配置示例如下:
/var/log/php-fpm/*.log {
daily
missingok
rotate 7
compress
notifempty
create 640 root adm
}
该配置表示每日轮转PHP-FPM日志,保留最近7个压缩文件,仅在日志非空时执行。测试配置有效性可使用sudo logrotate -f /etc/logrotate.d/php-fpm命令,系统会自动应用规则。
2. 手动清理命令(临时应急工具)
通过Shell命令可快速清理PHP日志,适用于临时释放磁盘空间:
- 删除指定日志文件:使用
rm命令(需root权限),如sudo rm -f /var/log/php-fpm/error.log(替换为实际日志路径); - 清空日志文件内容:使用
truncate命令,保留文件但清空内容(不影响正在写入的进程),如sudo truncate -s 0 /var/log/php-fpm/*.log(清空所有PHP-FPM日志); - 查找并清理老旧日志:结合
find命令按时间/大小筛选,如find /var/log -type f -name "*.log" -mtime +30 -exec rm -f { } \;(删除30天前的.log文件)或find /var/log -type f -name "*.log" -size +50M -exec truncate -s 0 { } \;(清空超过50MB的日志文件)。
3. 定时任务(Cron)(自动化执行工具)
通过cron设置定时任务,可实现日志清理的自动化。例如,创建/path/to/log_cleanup.sh脚本,内容为find /var/log/php-fpm/*.log -mtime +7 -exec rm -f {
}
\;
(删除7天前的PHP-FPM日志),然后赋予执行权限chmod +x /path/to/log_cleanup.sh,最后在crontab -e中添加0 3 * * * /path/to/log_cleanup.sh(每日凌晨3点执行)。也可将logrotate加入cron(默认已配置),确保日志轮转自动运行。
4. PHP代码清理(应用层工具)
若PHP应用将日志写入自定义文件(如/var/log/myapp.log),可通过PHP代码实现日志清理。例如,使用unlink()删除文件或file_put_contents()清空内容:
$logFile = '/var/log/myapp.log';
if (file_exists($logFile)) {
unlink($logFile);
// 删除日志文件
// 或使用 file_put_contents($logFile, '');
// 清空日志内容
}
然后通过cron定期执行该脚本(如0 1 * * * /usr/bin/php /path/to/cleanup.php),实现应用层日志的自动清理。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS PHP日志清理工具有哪些
本文地址: https://pptw.com/jishu/746140.html
