本文主要是介绍Nginx(十七) 日志轮训/切割,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.编写shell脚本
Nginx_Log_Path="/usr/local/nginx/logs/"
Dateformat=`date +%Y%m%d`
mv ${Nginx_Log_Path}/access.log ${Nginx_Log_Path}/access-${Dateformat}.log
mv ${Nginx_Log_Path}/access_8688.log ${Nginx_Log_Path}/access_8688-${Dateformat}.log
mv ${Nginx_Log_Path}/error.log ${Nginx_Log_Path}/error_${Dateformat}.log
nginx -s reopen
可以直接用win系统的文本编辑器来新建.sh。文件重命名为split_nginx_log.sh,并上传到服务器。
2.文件授权
[root@reader sbin]# chmod +x split_nginx_log.sh
3.手动执行脚本进行测试
[root@reader sbin]# pwd
/usr/local/nginx/sbin
[root@reader sbin]# ll
total 24836
-rwxr-xr-x 1 root root 7050624 Dec 30 20:15 nginx
-rwxr-xr-x 1 root root 6148992 Dec 8 20:30 nginx_20231208.bak
-rwxr-xr-x 1 root root 6066592 Nov 26 21:32 nginx_20231230.bak
-rwxr-xr-x 1 root root 6148992 Dec 30 20:01 nginx.bak
-rwxr-xr-x 1 root root 716 Jan 4 22:44 split_nginx_log.sh
[root@reader sbin]# split_nginx_log.sh
[root@reader sbin]#
如果执行脚本后提示以下错误
-bash: /usr/local/nginx/sbin/split_nginx_log.sh: /usr/bin/bash^M: bad interpreter: No such file or directory
说明文件格式不支持,因为windows系统的文件格式是dos,而linux系统是unix,所以需要将文件格式从dos修改为unix。
# 打开vim
vim split_nginx_log.sh
# 使用set修改ff
:set ff=unix
# 保存退出
:wq
4.使用定时任务开启脚本
[root@reader sbin]# crontab -e00 00 * * * /bin/sh /usr/local/nginx/sbin/split_nginx_log.sh### 执行:wq保存文件# 重启定时任务
/bin/systemctl restart crond.service
这篇关于Nginx(十七) 日志轮训/切割的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!