7410
Nginx日志默认不做人为处理,日志文件会存放在access.log,error.log两个文件中,随着时间的推移,日志量会越来越大,不方便编辑查看,为了让日志按天存放,可以做一些配置,设置一个定时任务,每天凌晨00:00开始备份昨天的日志,然后重新开启一个新的日志文件。
创建脚本文件
#编辑并创建一个nginx_logs_clean.sh脚本文件
vi /opt/nginx_logs_clean.sh
编辑脚本内容(自动7天后清理日志)
#!/bin/bash
LOG_PATH=/usr/local/<a href="https://www.nosblog.cn/tag/nginx" class="st_tag internal_tag " rel="tag" title="标签 Nginx 下的日志">nginx</a>/logs/
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
PID=/usr/local/nginx/logs/nginx.pid
SAVETIME=7
mv ${LOG_PATH}access.log ${LOG_PATH}access-${YESTERDAY}.log
mv ${LOG_PATH}error.log ${LOG_PATH}error-${YESTERDAY}.log
find ${LOG_PATH} -mtime +${SAVETIME} -name \*.log |xargs rm -rf {}
kill -USR1 `cat ${PID}`
编辑脚本内容(手动清理日志)
#!/bin/bash
LOG_PATH=/usr/local/<a href="https://www.nosblog.cn/tag/nginx" class="st_tag internal_tag " rel="tag" title="标签 Nginx 下的日志">nginx</a>/logs/
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
PID=/usr/local/nginx/logs/nginx.pid
mv ${LOG_PATH}access.log ${LOG_PATH}access-${YESTERDAY}.log
mv ${LOG_PATH}error.log ${LOG_PATH}error-${YESTERDAY}.log
kill -USR1 `cat ${PID}`
设置定时任务
# 没有安装crontab的需要运行安装
sudo yum install crontabs
# 添加一项定时任务执行
crontab -e
# 定时任务内容
0 0 * * * /opt/nginx_logs_clean.sh
# 重启定时任务
service crond restart
定时任务表达式
Cron表达式是,分为5或6个域,每个域代表一个含义,如下所示:
分 | 时 | 日 | 月 | 星期几 | 年(可选) | |
取值范围 | 0-59 | 0-23 | 1-31 | 1-12 | 1-7 | 2020/2021/2022/… |
常用的表达式
- 每分钟执行:
*/1 * * * *
- 每日凌晨(每天晚上23:59)执行:
59 23 * * *
- 每日凌晨1点执行:
0 1 * * *
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容