Nginx(十七) 日志轮询/切割

1.编写shell脚本

复制代码
Nginx_Log_Path="/usr/local/nginx/logs/"
Dateformat=$(date -d "yesterday" +%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
/usr/local/nginx/sbin/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 -e

00 00 * * * /bin/sh /usr/local/nginx/sbin/split_nginx_log.sh

### 执行:wq保存文件

# 重启定时任务
/bin/systemctl restart crond.service
相关推荐
dogstarhuang1 天前
OpenAI GPT-5.6 降价后如何重算 API 账单?多模型路由与成本治理实战
服务器·网络·人工智能·大模型·api·ai应用开发·接口管理
苏宸啊1 天前
linux网络编程udp服务器和客户端代码编写(echo版本和字典版本)
linux·网络
~|Bernard|1 天前
Linux 定时任务(Cron)完整教程
linux·运维·服务器
小周学学学1 天前
vmware-horizon第一章:horizon服务器安装
运维·服务器·vmware
小雪崩1 天前
嵌入式学习 day25:哈希表及排序与查找
linux·c语言·数据结构·学习·排序算法
奇树谦1 天前
HDD 为什么适合顺序大文件读写:从 RAID 5 到 RAID 50 的原理与性能分析
linux·运维·网络
hi_ro_a1 天前
Linux基础开发工具详解
linux·运维·服务器
嵌入式阿蔡1 天前
Linux_01:交叉编译与开发环境实战——从单片机跨到 Linux 的第一道坎
linux·运维·网络·单片机·嵌入式硬件·嵌入式实时数据库
风静如云1 天前
Openssl:Win11(Chrome)安装客户端证书
服务器
風穆1 天前
OopsVPS:多云 VPS 比价平台的十大核心优势
大数据·服务器·云服务器·oopsvps