nginx定时任务每天定时分割日志

1.安装定时任务插件

yum install crontabs

2.创建.sh文件,记录这个文件名,在定时任务需要用到

#!/bin/bash
#定义存放nginx日志文件的目录
LOG_PATH="/var/log/nginx/"
#定义时间格式
RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d+%H:%M)
#nginx.pid内存放了nginx进程的pid,用于最后一句
PID=/var/run/nginx/nginx.pid
#下面两句:文件名字修改
mv ${LOG_PATH}/access.log ${LOG_PATH}/access.${RECORD_TIME}.log
mv ${LOG_PATH}/error.log ${LOG_PATH}/error.${RECORD_TIME}.log
#向Nginx主进程发送信号,用于重新打开日志文件,平滑启动nginx
kill -USR1 `cat $PID`

3.编辑定时任务

两种方式,

第一种进入/var/spool/cron目录,执行 vim root命令直接添加定时任务,如下

第二种直接执行命令 corntab -e 进入root文件的编辑状态

可能会出现权限的问题,即使是root账号下也无法修改的问题,解决办法在下面。

4.表达式格式 :cron在线表达式生成

corn表达式  +  sh  + 文件地址

*/30 * * * * sh /etc/newinit.sh >/dev/null 2>&1
0 0 0 * * ? * sh /usr/local/nginx/sbin/cut_log.sh

5.如何解决权限问题

执行如下命令,查看你的这个目录下有哪些特殊的权限

[root@10-13-114-168 sbin/]$ lsattr /var/spool/cron/
----ia-------------- /var/spool/cron/root

看到如上,有  ia 两个特殊权限,再执行如下命令取消特殊权限

chattr -ai /var/spool/cron

之后便可以正常的修改定时任务了,如果还出错,检查一下自己的表达式是否有误

6.重启

执行如下命令

service crond restart

到此完成整个流程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值