日志切割我们很少使用php来开发了,因为php处理这些来非常的慢了,不过日志小的话或直接在网站上查看日志时这个就起到作用了,下面来看一个php系统日志切割的实例,具体如下。
我习惯设置的日志路径是这样
/home/www/logs/域名.log
比如
/home/www/logs/www.yundaiwei.com.log
为了方便管理,日志需要按天保存在一个文件中,并且保留指定天数的日志,超过时间的就删除。
分享一下脚本
#!/usr/bin/php
$logdir = '/home/www/logs/';
// 保留天数含当天
$log_save_day = 7;
$files = glob("{$logdir}/*");
foreach($files as $path){
$filename = basename($path);
preg_match("/(\d{8})\.log/", $filename, $preg);
$date = @$preg[1];
if(empty($date)){
// 当天日志,更改文件名
$newpath = $logdir . '/' . str_replace('log', date('Ymd',strtotime("-1 day")).'.log', $filename);
rename($path, $newpath);
echo "$path >>> $newpath\n";
}else{
// 超过保留天数,删除
if(time() 10 - strtotime($date) > 3600*24*$log_save_day){
unlink($path);
echo "$path delete!\n";
}
}
}
shell_exec('/etc/init.d/nginx reload &> /dev/null');