Crontab和Shell脚本切割Nginx日志使用详解

 更新时间:2023年06月14日 09:54:25   作者:天問  
这篇文章主要为大家介绍了Crontab和Shell脚本切割Nginx日志,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

一、配置 Crontab 定时任务

  • 配置文件路径:/var/spool/cron/root
  • 添加定时任务
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 完整代码
#!/bin/bash
. /etc/profile
source /etc/profile
source ~/.bash_profile
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
# 当发生错误时中止脚本
set -e
base="/usr/local/nginx/logs/"
day="`date '+%Y%m%d'`"
curDir="${base}${day}"
accessLog=${base}access.log
errorLog=${base}error.log
ms="`date '+%s'`"
# 判断以当天日期为名的文件夹是否存在,存在打印输出,不存在就创建
if [ -d ${curDir} ];then
  echo "${curDir} 文件夹存在"
  else
  echo "${curDir} 文件夹不存在"
  mkdir ${curDir}
fi
# 复制当前的 access.log 和 error.log 日志文件,文件名加上时间戳,并存入以当天日期为名的文件夹
\cp -rf ${accessLog} ${curDir}/access-${ms}.log
\cp -rf ${errorLog} ${curDir}/error-${ms}.log
# 复制完成后清空原本的 access.log 和 error.log 日志文件
> ${accessLog}
> ${errorLog}
# 输出成功或失败的信息
if [ $? == 0 ]; then
  echo "nginx slice 成功 (${curDir}/access-${ms}.log)"
  else
  echo "nginx slice 失败 (${curDir}/access-${ms}.log)"
fi

三、遇到的问题

问题:crontab 定时任务执行 shell 脚本时,可能遇到这种报错:/bin/sh: /root/app/shell/nginx-log-slice.sh: Permission denied,这就说明 shell 脚本权限不足。
解决:执行以下命令为 nginx-log-slice.sh 文件授权。

chmod 777 /root/app/shell/nginx-log-slice.sh

使用 ll 命令查看文件权限

cd /root/app/shell
ll

在授权前会输出:

[root@VM-8-12-centos shell]# ll
总用量 8
-rwxrwxrwx 1 root root 404 10月 15 2021 test.sh
-rw-r--r-- 1 root root 610 10月  9 2022 nginx-log-slice.sh

在授权后会输出:

[root@VM-8-12-centos shell]# ll
总用量 8
-rwxrwxrwx 1 root root 404 10月 15 2021 test.sh
-rwxrwxrwx 1 root root 610 10月  9 2022 nginx-log-slice.sh

一切就绪后建议执行 nginx -s reload 重启 Nginx 服务

以上就是Crontab和Shell脚本切割Nginx日志的详细内容,更多关于Crontab Shell切割Nginx的资料请关注脚本之家其它相关文章!

相关文章

  • nginx rewrite 伪静态配置参数和使用例子

    nginx rewrite 伪静态配置参数和使用例子

    nginx下伪静态配置参数详细说明,使用nginx的朋友,nginx rewrite 伪静态配置参数和使用例子 附正则使用说明
    2010-07-07
  • nginx使用内置模块配置限速限流的方法实例

    nginx使用内置模块配置限速限流的方法实例

    Nginx现在已经是最火的负载均衡之一,在流量陡增的互联网面前,接口限流也是很有必要的,尤其是针对高并发的场景,下面这篇文章主要给大家介绍了关于nginx使用内置模块配置限速限流的相关资料,需要的朋友可以参考下
    2022-05-05
  • Nginx下配置Https证书详细过程

    Nginx下配置Https证书详细过程

    这篇文章主要介绍了Nginx下配置Https证书详细过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • nginx镜像构建的知识点及方法步骤详解

    nginx镜像构建的知识点及方法步骤详解

    这篇文章主要为大家介绍了nginx镜像构建的知识点详解,<BR>有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • nginx 让users有权限启动的两种方法

    nginx 让users有权限启动的两种方法

    这篇文章主要介绍了nginx 让users有权限启动两种方法的相关资料,需要的朋友可以参考下
    2017-05-05
  • nginx参数的详细介绍

    nginx参数的详细介绍

    这篇文章主要介绍了nginx参数的详细介绍的相关资料,需要的朋友可以参考下
    2017-06-06
  • 网站如何通过nginx设置黑/白名单IP限制及国家城市IP访问限制

    网站如何通过nginx设置黑/白名单IP限制及国家城市IP访问限制

    如果你的服务器被攻击很厉害,而且服务器是自己练手的,不需要其他用户访问的,那么就可以配置一下nginx的白名单,下面这篇文章主要给大家介绍了关于网站如何通过nginx设置黑/白名单IP限制及国家城市IP访问限制的相关资料,需要的朋友可以参考下
    2022-07-07
  • Nginx负载均衡之upstream模块简介与使用详解

    Nginx负载均衡之upstream模块简介与使用详解

    nginx有一个最大的功能就是可以实现服务器的负载均衡,下面这篇文章主要给大家介绍了关于Nginx负载均衡之upstream模块简介与使用的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • Windows 安装 nginx 部署教程

    Windows 安装 nginx 部署教程

    这篇文章主要介绍了Windows安装nginx部署,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • Keepalived实现Nginx负载均衡高可用的示例代码

    Keepalived实现Nginx负载均衡高可用的示例代码

    这篇文章主要介绍了Keepalived实现Nginx负载均衡高可用的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04

最新评论