一、需求背景:如果日志不做切割,会导致日志堆积在access.log文件中,长时间会导致日志文件越滚越大,后续排查问题查看日志文件会是一个噩梦(我见过没有做做切割导致日志文件5G以上的,打开文件会读入到内存,系统直接卡顿无法显示)
二、思路:
通过定时任务:每晚凌晨0点,对access.log文件进行改名为当天日期,然后重载nginx生成新的access.log文件
三、shell脚本实现过程
#/bin/bash
Nginx_log_dir=/usr/local/nginx/logs/
Date_time=`date +%F`
Nginx_start_fir=/usr/local/nginx/sbin/nginx
[ -d $Nginx_log_dir ] && cd $Nginx_log_dir || exit 1
[ -f $Nginx_log_dir/access.log ] || exit 1
mv ${Nginx_log_dir}/access.log hbxt-$Date_time.log
$Nginx_start_fir -s reload
四、定时任务执行该脚本(每天11点50执行该脚本)
50 23 * * * /bin/bash /usr/local/nginx/logs/nginx-log.sh