Nginx 日志会随着时间和访问流量的增加而日益增大,access.log
日志文件也会随之越来越大,最后会导致日志的读写效率下降,进而影响 Nginx 服务的性能。因此,需要对 Nginx 日志文件进行切割,本文就介绍一下:使用 Crontab 定时任务执行 shell 脚本来切割 Nginx 日志。
一、配置 Crontab 定时任务
- 配置文件路径:
/var/spool/cron/root
- 添加定时任务
1 | 59 23 * * * /root/app/shell/nginx-log-slice.sh |
配置解释:在 每天的23时59分 执行 /root/app/shell/nginx-log-slice.sh
脚本。
配置其他自定义时间可以参考:Linux强大的定时任务-Crontab,有详细的配置说明。
二、编写 shell 脚本
- 文件路径:
/root/app/shell/nginx-log-slice.sh
nginx-log-slice.sh
完整代码
1 |
|
三、遇到的问题
问题:crontab 定时任务执行 shell 脚本时,可能遇到这种报错:/bin/sh: /root/app/shell/nginx-log-slice.sh: Permission denied
,这就说明 shell 脚本权限不足。
解决:执行以下命令为 nginx-log-slice.sh
文件授权。
1 | chmod 777 /root/app/shell/nginx-log-slice.sh |
使用 ll
命令查看文件权限
1 | cd /root/app/shell |
在授权前会输出:
1 | [root@VM-8-12-centos shell]# ll |
在授权后会输出:
1 | [root@VM-8-12-centos shell]# ll |
一切就绪后建议执行 nginx -s reload
重启 Nginx 服务。
欢迎访问:天问博客
本文作者: Tiven
发布时间: 2022-10-09
最后更新: 2022-10-10
本文标题: 使用Crontab和Shell脚本切割Nginx日志
本文链接: https://www.tiven.cn/p/d8c1da0b/
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。转载请注明出处!
发布时间: 2022-10-09
最后更新: 2022-10-10
本文标题: 使用Crontab和Shell脚本切割Nginx日志
本文链接: https://www.tiven.cn/p/d8c1da0b/
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。转载请注明出处!