nginx日志按天切割并保留最新的五份
1、打开nginx配置文件,也可以在单独的vhost配置文件中,在里面加入以下内容
#从系统时间中正则匹配出年月日 if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})") { set $date $1$2$3; } access_log /usr/local/nginx/logs/$date.access.log; error_log /usr/local/nginx/logs/error.log;
2、添加shell脚本,命名clearLogs.sh
#!/bin/bash find /usr/local/nginx/logs/ -mtime +2 -name "*.access.log" -exec rm -rf {} \;
-mtime用法说明:
find ./ -name “*data*” -mtime +1 当前目录下文件名包含data,而且修改时间在48小时以上的
find ./ -name “*date*” -mtime +2 当前目录下文件名包含data,而且修改时间在72小时以上的
find ./name “*data*” -mtime -1 当前目录下文件名包含data,而且修改时间在24小时以内的
find ./name “*data*” -mtime -2 当前目录下文件名包含data,而且修改时间在48小时以内的
find ./name “*data*” -mtine 1 当前目录下文件名包含data,而且修改时间在1天前当天的,也就是24小时以上,48小时以内
3、添加定时任务,每天执行,定时删除nginx日志
#每日一点删除nginx的nginx日志 00 1 * * * /usr/local/Crontab/clearLogs.sh