首页 > 开发 > PHP > 正文

php系统日志切割的实例

2024-05-04 21:50:13
字体:
来源:转载
供稿:网友

我习惯设置的日志路径是这样

/home/www/logs/域名.log

比如:

/home/www/logs/www.Vevb.com.log

为了方便管理,日志需要按天保存在一个文件中,并且保留指定天数的日志,超过时间的就删除。

分享一下脚本:

  1. #!/usr/bin/php 
  2. $logdir = '/home/www/logs/'
  3. // 保留天数含当天 
  4. $log_save_day = 7; 
  5.  
  6. $files = glob("{$logdir}/*"); 
  7.  
  8. foreach($files as $path){ 
  9.     $filename = basename($path); 
  10.     preg_match("/(/d{8})/.log/"$filename$preg); 
  11.  
  12.     $date = @$preg[1]; 
  13.      
  14.     if(emptyempty($date)){ 
  15.         // 当天日志,更改文件名 
  16.         $newpath = $logdir . '/' . str_replace('log'date('Ymd',strtotime("-1 day")).'.log'$filename); 
  17.         rename($path$newpath); 
  18.         echo "$path >>> $newpath/n"
  19.     }else
  20.         // 超过保留天数,删除 
  21.         if(time()+10 - strtotime($date) > 3600*24*$log_save_day){ 
  22.             unlink($path); 
  23.             echo "$path delete!/n"
  24.         } //Vevb.com 
  25.     } 
  26. shell_exec('/etc/init.d/nginx reload &> /dev/null');

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表