在CentOS系统上清理PHP日志文件可以通过以下几种方法进行:
定位日志文件:
find
命令查找日志文件。例如,查找 /var/log
目录下所有日志文件:find /var/log -name "*.log"
截断日志文件:
truncate
命令清空日志文件内容,但保留文件本身。例如,截断所有大小超过 50MB 且修改时间超过 7 天的日志文件:find /var/log -type f -name "*.log" -size +50M -mtime +7 -exec truncate -s 0 {} \;
删除旧的日志文件:
rm
命令删除不再需要的旧日志文件。例如,删除修改时间超过 30 天的日志文件:find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;
logrotate
logrotate
:
logrotate
会定期轮转日志文件,将旧的日志文件压缩或删除,并创建新的日志文件。配置文件位于 /etc/logrotate.conf
,可以在这里设置日志轮转的策略。例如:/var/log/messages {
rotate 5
weekly
compress
delaycompress
missingok
notifempty
create 0640 root utmp
postrotate
/usr/bin/killall -HUP syslogd
endscript
}
/var/log/messages
文件将每周轮转一次,保留 5 个旧的压缩日志文件。创建清理脚本:
log_cleanup.sh
脚本:#!/bin/bash
find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;
chmod +x log_cleanup.sh
设置 cron 作业:
0 3 * * * /path/to/log_cleanup.sh
删除临时文件和日志:
<?php
$temp_folder = '/path/to/temp_folder';
$log_file = '/path/to/log_file';
// 删除临时文件夹
if (is_dir($temp_folder)) {
$files = glob($temp_folder . '/*');
foreach ($files as $file) {
if (is_file($file)) {
unlink($file);
}
}
rmdir($temp_folder);
}
// 清空日志文件
if (file_exists($log_file)) {
file_put_contents($log_file, '');
}
?>
定期清理:
cron
任务或计划任务来定期执行上述清理操作,以确保系统的正常运行。通过以上方法,可以有效地管理和清理 CentOS 系统上的 PHP 日志文件,释放磁盘空间,提升系统性能。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: CentOS Java内存如何优化配置