当前位置:首页 > PHP教程 > php高级应用 > 列表

php系统日志切割的实例

发布:smiling 来源: PHP粉丝网  添加日期:2018-09-17 09:26:08 浏览: 评论:0 

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

/home/www/logs/域名.log

比如:

/home/www/logs/www.phpfensi.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.         } //phpfensi.com 
  25.     } 
  26. shell_exec('/etc/init.d/nginx reload &> /dev/null');

Tags: 实例 系统 日志

分享到: