参考了网上一些教程.但是有很多细节错误 所以修正后做个笔记..以防后来者再走弯路
编写每天定时切割 Nginx日志的脚本:
1.创建脚本/home/wwwlogs/cut_nginx_log.sh
在终端内输入:vi /home/wwwlogs/cut_nginx_log.sh
2.输入以下内容
注:日志路径请按照实际路径编写
#!/bin/bash
# This script run at 00:00
# The Nginx logs path
logs_path="/home/wwwlogs/"
mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d"yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log
/usr/local/nginx/sbin/nginx -s reload
#不推荐使用 kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
编辑完成后按ESC退出编辑模式 然后再输入ZZ即可保存退出
3.赋予 cut_nginx_log.sh 执行权限:
chmod 755 /home/wwwlogs/cut_nginx_log.sh
4.设置crontab,每天凌晨00:00切割
nginx访问日志
crontab -e
输入以下内容:
00 00 * * * /home/wwwlogs/cut_nginx_log.sh
5.运行crontab -l 检测是否设置定时运行成功
如果显示00 00 * * * /home/wwwlogs/cut_nginx_log.sh则说明已成功设置
注:如果没有crontab 则安装命令为:
yum install vixie-cron
————————第二种简单的分割方法——————
#!/bin/bash
# This script run at 00:00
# The Nginx logs path
mv /home/wwwlogs/access.log /home/wwwlogs/access_`date +%Y%m%d`.log
/usr/local/nginx/sbin/nginx -s reload