Shadow
nignx定时任务完成日志按日期存储
Nignx定时任务完成日志按日期存储
直接上脚本,把下面的代码另存为一个 log.sh
shell脚本
#!/bin/bash
#日志目录,根据需要修改成自己的
base_path='/www/wwwlogs'
#日志目录用年月新建
log_path=$(date -d yesterday +"%Y%m")
#日志的文件名
day=$(date -d yesterday +"%d")
#创建日志目录按年月
mkdir -p $base_path/$log_path
#移动当前日志并重命名到指定目录
mv $base_path/www.wxxc.com.log $base_path/$log_path/www.wxxc.com_$day.log
#重新打开日志文件
/www/server/nginx/sbin/nginx -s reopen
例如我把脚本放在了:/www/server/nginx/shells/log.sh
目录下,需要给该脚本赋予执行权限, chmod 755 /www/server/nginx/shells/log.sh
测试脚本
直接在shell终端执行:/www/server/nginx/shells/log.sh
如果没有报错则可以直接新建定时任务;
报错(坏的解释器)的解决办法:
[root@dcr163-entos7 shells]# /www/server/nginx/shells/log.sh
-bash: /www/server/nginx/shells/log.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录
#则需要执行下面的目录,(这个文件在Windows 下编辑过,在Windows下每一行结尾是\n\r,而Linux下则是\n,所以才会有 多出来的\r。)
sed -i 's/\r$//' /www/server/nginx/shells/log.sh
新建定时任务
crontab -e
#nginx日志分隔,每天的2点01分执行脚本
01 02 * * * /www/server/nginx/shells/log.sh
执行效果如下图
就此,nignx的日志自动分隔就完成了~
Dcr163的博客
http://dcr163.cn/483.html(转载时请注明本文出处及文章链接)