05-nginx定时任务完成日志切割

目标:每天晚上凌晨一点钟左右把昨天的任务给它切掉,把昨天的日志给它改个名存起来,根据昨天的时间给它改个名存起来,所以要根据日期生成文件名。


也许你不会写bash脚本,但是老师带着你一步一步地来。


shell脚本比php简单很多,主要记住它的变量如何声明就搞定了,其他没什么。

声明你的LOGPATH在哪,因为要备份你所以得把你的路径搞清楚。

主要的工作:把LOGPATH下的这个玩意给它重命名,拿日期重命名,拿年月日重命名会导致一个问题:得等到今天晚上十二点才能看到它日志切割的效果。这可不太妙,好在我们可以让它每分钟执行一次。


可以把日志备份文件的文件名算出来之后,之后的工作就简单了:把原来的配置文件重命名,并且再重新建立一份新的而且是空的配置文件,最后还得给/usr/local/nginx/logs/nginx.pid发信号。kill -USR1 给/usr/local/nginx/logs/nginx.pid发信号。如果工作正确的话,应该每一分钟多出来一个日志文件。

每一分钟将会自动执行,自动执行将会产生一个备份文件。


不断地按F5刷新,你觉得时间过得很快时它觉得时间过得很慢。


一天产生一个日志都摆在data下不太好。在bash脚本多创建几个目录就行,按照域,每个域一个目录就行。这个日志应该存放所在的目录,把这个目录创建出来之后,再根据时和分把日志名写出来。


它始终都会有一个日志文件z.com.access.log,然后每天都会自动地把它备份到/data目录下。

crontab -e定时执行任务

crontab命令在/var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom建的crontab任务对应的文件就是/var/spool/cron/tom。一般一个用户最多只有一个crontab文件。


nginx日志的切割管理,按天切割管理。

原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/6534767.html