日志切割

===========================================================
# cat /home/wwwlogs/log_cut.sh
 
#!/bin/bash
#encoding=utf-8
 
#日志路径
log_path=/home/wwwlogs
 
#显示昨天的时间
yesterday=$(date -d "yesterday" +%Y%m%d)
 
#按天切割日志
mv ${log_path}/appbbs.log ${log_path}/appbbs_${yesterday}.log
 
#向nginx主进程发送USR1信号,重新打开日志文件,否则会继续往mv后的文件写数据的。原因在于:linux系统中,内核是根据文件描述符来找文件的。如果不这样操作导致日志切割失败。
 
kill -USR1 `ps axu | grep "nginx: master process" | grep -v grep | awk '{print $2}'`
 
#删除7天前的日志
cd ${log_path}
find . -name "appbbs_20*" -type f -mtime +7 | xargs rm -f
exit 0
==========================================================================
 
#删除7天前的日志另外两种方法:
#或者
#find . -mtime +7 -name "access_*" | xargs rm -f
#或者
#find /home/wwwlogs -mtime +30 -type f -name bbs_xfgame* -exec rm -f {} \;
posted @ 2025-07-28 11:17  榆812  阅读(6)  评论(0)    收藏  举报