nginx 定时分割日志

nginx  是没有自动分割日志的,所以就需要自己实现日志分割

原   站点所有日志都放在一个目录里(文件名即站点名)
分割方式:每个站点一个目录,每天生成一个日志文件,根据文件名称生成目录

呆狐狸.凨

1.lanmps_cut_log.sh  shell文件

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/root/bin:~/bin
export PATH
# Check if user is root
if [ $UID != 0 ]; then echo "Error: You must be root to run the install script, please use root to install lanmps";exit;fi
#日志目录
IN_WEB_LOG_DIR="/www/wwwLogs"
YESTERDAY=`date -d "yesterday" +%Y-%m-%d`
[ ! -d $IN_WEB_LOG_DIR/logs ] && mkdir $IN_WEB_LOG_DIR/logs

for filename in `ls $IN_WEB_LOG_DIR`
	do 
		if [ -f $IN_WEB_LOG_DIR/$filename ] ; then
				#echo $IN_WEB_LOG_DIR/$filename
				#echo $IN_WEB_LOG_DIR/logs/${filename%.log}/${YESTERDAY}.log
				tmpPath=$IN_WEB_LOG_DIR/logs/${filename%.log}
				[ ! -d $tmpPath ] && mkdir $tmpPath
				mv $IN_WEB_LOG_DIR/$filename $tmpPath/${YESTERDAY}.log
				rm -rf $IN_WEB_LOG_DIR/$filename
		fi
	done
	
	
#nginx  pid 文件位置
kill -USR1 `cat /www/lanmps/nginx/logs/nginx.pid`
保存位置 例如:/root/lanmps_cut_log.sh

2.定时任务

#在 每天凌晨00:01运行
1 0 * * * /root/lanmps_cut_log.sh

3.设置


3.1  crontab命令

功能说明:设置计时器。

语  法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]

补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。其配置文件格式如下:
Minute Hour Day Month DayOFWeek Command

参  数:
-e  编辑该用户的计时器设置。
-l  列出该用户的计时器设置。
-r  删除该用户的计时器设置。
-u<用户名称>  指定要设定计时器的用户名称。

3.2  crontab 格式

基本格式 :
* *  *  *  *  command
分 时 日 月 周  命令


第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列 表示月份1~12
第5列标识号星期0~6(0表示星期天)

第6列要运行的命令

3.3 案例

首先,输入

crontab -e
然后输入

1 0 * * * /root/lanmps_cut_log.sh
完成



已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页