centos

CentOS PHP日志清理工具有哪些

小樊
44
2025-11-10 01:19:09
栏目: 编程语言

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日志,适用于临时释放磁盘空间:

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),实现应用层日志的自动清理。

0
看了该问题的人还看了